itchat编写每天推送天气预报程序
程序分为两部分
第一部分:爬取信息
代码如下:
# -*- coding:utf-8 -*-
import requests
from lxml import etree
def get_tianqi():
get_tianqi_url = "https://tianqi.2345.com/wulumuqi/51463.htm"
get_tianqi_headers = {
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:64.0) Gecko/20100101 Firefox/64.0",}
html = requests.get(url=get_tianqi_url,headers=get_tianqi_headers)
html.encoding="gbk"
html_etree = etree.HTML(html.text)
#获取天气情况和温度
now_date = "".join(html_etree.xpath('//ul[@class="clearfix has_aqi"]/li[1]/p//text()')).replace("\n","")
now_tianqi_qingkuang = "".join(html_etree.xpath('//ul[@class="clearfix has_aqi"]/li[1]/b/text()'))
now_wendu = "~".join(html_etree.xpath('//ul[@class="clearfix has_aqi"]/li[1]/i/font/text()'))
now_fenli = "".join(html_etree.xpath('//ul[@class="clearfix has_aqi"]/li[1]/i/text()')[1])
tormorrow_tianqi_qingkuang = "".join(html_etree.xpath('//ul[@class="clearfix has_aqi"]/li[2]/b/text()'))
tormorrow_wendu = "~".join(html_etree.xpath('//ul[@class="clearfix has_aqi"]/li[2]/i/font/text()'))
#-----------------获取空气质量
get_air_url = "https://tianqi.2345.com/air-51463.htm"
air_html = requests.get(url=get_air_url,headers=get_tianqi_headers)
air_html_etree = etree.HTML(air_html.text)
air_zhiliang = air_html_etree.xpath('//div[@class="td td2"]//text()')[0]
#温馨提示
air_message = air_html_etree.xpath('//dl[@class="tip"]//text()')
#组合消息
send_message = "群助手天气播报\n"
send_message += now_date+"\n"
send_message += "天气:"+now_tianqi_qingkuang+" 温度:"+now_wendu+"\n"
send_message += "风力"
send_message += "空气质量:"+air_zhiliang+"\n"
send_message += air_message[0]+air_message[1]+"\n"
send_message += "明天天气:"+tormorrow_tianqi_qingkuang+" 温度:"+tormorrow_wendu
print ("程序已经运行")
return send_message
第二部分:定时微信发送
def wx_send():
itchat.auto_login(hotReload=True)
user = itchat.search_friends(name="青天白日")[0]["UserName"]
itchat.send(msg=get_tianqi(),toUserName=user)
sched = BlockingScheduler()
sched.add_job(wx_send, 'cron', hour=7,minute=1,second=00)
sched.start()
itchat.run()