加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python定时发送天气预报邮件

发布时间:2020-12-20 10:46:57 所属栏目:Python 来源:网络整理
导读:用python爬虫爬到的天气预报,使用smtplib和email模块可以发送到邮箱,使用schedule模块可以定时发送。以下是代码~ #导入模块import requestsfrom bs4 import BeautifulSoupimport smtplibfrom email.mime.text import MIMETextfrom email.header import He
用python爬虫爬到的天气预报,使用smtplib和email模块可以发送到邮箱,使用schedule模块可以定时发送。以下是代码~

#导入模块
import requests
from bs4 import BeautifulSoup
import smtplib
from email.mime.text import MIMEText
from email.header import Header
import schedule
import time

#输入邮箱发件人、收件人以及邮箱的授权码
account = str(input(‘请输入发件人邮箱地址:‘))
password = str(input(‘请输入邮箱授权码:‘))
receiver = str(input(‘请输入收件人邮箱地址:‘))

#建立天气网爬虫,爬取天气信息
def weather_spider():
    #模拟浏览器:
    headers={
        ‘user-agent‘:‘Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/71.0.3578.98 Safari/537.36‘
        }
    url=‘http://www.weather.com.cn/weather/101211001.shtml‘
    #数据获取:
    res=requests.get(url,headers=headers)
    res.encoding=‘utf-8‘
    #数据解析:
    soup=BeautifulSoup(res.text,‘html.parser‘)
    #数据提取:
    tem1= soup.find(class_=‘tem‘)
    weather1= soup.find(class_=‘wea‘)
    tem=tem1.text
    weather=weather1.text
    return tem,weather

#发送邮件的代码
def send_email(tem,weather):
    global account,password,receiver
    mailhost=‘smtp.qq.com‘
    qqmail = smtplib.SMTP()
    qqmail.connect(mailhost,25)
    qqmail.login(account,password)
    content= ‘衢州的天气是:n‘+tem+weather
    message = MIMEText(content,‘plain‘,‘utf-8‘)
    subject = ‘今日天气预报from python‘
    message[‘Subject‘] = Header(subject,‘utf-8‘)
    try:
        qqmail.sendmail(account,receiver,message.as_string())
        print (‘邮件发送成功‘)
    except:
        print (‘邮件发送失败‘)
    qqmail.quit()

#建立任务
def job():
    print(‘开始一次任务‘)
    tem,weather = weather_spider()
    send_email(tem,weather)
    print(‘任务完成‘)

#定时发送
schedule.every().day.at("7:00").do(job) 
while True:
    schedule.run_pending()
    time.sleep(1)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读