一、爬取天气
中国天气网http://www.weather.com.cn/weather1d/101180101.shtml(以郑州为例,当然其它城市也可以,只需将10118001更换为其它城市的代码)

我想要图上的内容。
心知天气https://www.seniverse.com/
心知天气的API对于免费用户只能免费调用这些数据,一点儿都不贴心,所以我们只调用它的1和2的数据。
因为它的生活指数只提供简单的指数,而没有建议。如紫外线指数,心知天气只提供了弱,而没有如中国天气网中的“辐射较弱,涂擦SPF12-15.......”之类的建议。



因此我结合中国天气网和心知天气同时爬取,也能比对两者的温度是否有所偏差。
注册心知天气,心知天气的api申请直接点击免费试用后,就会给你免费用,其实还是不错的。
不多说上爬取code:
def getweather_spider():
xinzhi_apikey = "**********"#心知天气的私钥,用你自己的key
url = "https://api.thinkpage.cn/v3/weather/daily.json?key=%s&location=zhengzhou&language=zh-Hans&unit=c&start=0&days=5" % xinzhi_apikey # 心知天气
url2 = "http://www.weather.com.cn/weather1d/101180101.shtml" # 中国天气网
# 获取天气预报信息
# 此处获取取今天明天后天3天的预报
r = requests.get(url)
r2 = requests.get(url2)
r2.encoding = r2.apparent_encoding
w = r.json()["results"][0]["daily"]
today = "今天:%s\n白天:%s,晚上:%s\n气温:%s/%s°C\n风向:%s(风力%s级|风速%skm/h)\n" % (
w[0]["date"], w[0]["text_day"], w[0]["text_night"], w[0]["high"], w[0]["low"], w[0]["wind_direction"],
w[0]["wind_scale"], w[0]["wind_speed"])
tomorrow = "\n明天:%s\n白天:%s,晚上:%s\n气温:%s/%s°C\n风向:%s(风力%s级|风速%skm/h)\n" % (
w[1]["date"], w[1]["text_day"], w[1]["text_night"], w[1]["high"], w[1]["low"], w[1]["wind_direction"],
w[1]["wind_scale"], w[1]["wind_speed"])
aftertomorrow = "\n后天:%s\n白天:%s,晚上:%s\n气温:%s/%s°C\n风向:%s(风力%s级|风速%skm/h)\n" % (
w[2]["date"], w[2]["text_day"], w[2]["text_night"], w[2]["high"], w[2]["low"], w[2]["wind_direction"],
w[2]["wind_scale"], w[2]["wind_speed"])
html = etree.HTML(r2.text)
clothe = html.xpath('//*[@id="chuanyi"]/a/p/text()') # 穿衣指数建议
b1 = html.xpath('//div[4]/div/ul/li[1]/span/text()') # 紫外线指数
b2 = html.xpath('//div[4]/div/ul/li[1]/p/text()') # 紫外线指数建议
c1 = html.xpath('//div[4]/div/ul/li[6]/span/text()') # 空气污染扩散指数
c2 = html.xpath('//div[4]/div/ul/li[6]/p/text()') # 空气污染扩散指数建议
command = "穿衣建议:" + str(clothe) + "\n" + "紫外线强度及建议:" + str(b1) + "||" + str(b2) + "\n" + "空气污染扩散指数及建议:" + str(
c1) + "||" + str(c2) + "\n"
message = today + command + '\n---------

本文介绍了如何使用Python爬取中国天气网和心知天气的数据,结合两者信息发送每日天气预报邮件。通过PyCharm将项目部署到阿里云服务器,实现定时运行程序,确保每天定时推送邮件。
最低0.47元/天 解锁文章
&spm=1001.2101.3001.5002&articleId=103092668&d=1&t=3&u=a948e594c87647f0bc1062e1ffac1c35)
1280

被折叠的 条评论
为什么被折叠?



