Pycharm将项目部署到云服务器上每日定时启动——python爬取中国天气网和心知天气,利用邮箱每天定时推送给朋友(温馨天气预报)

本文介绍了如何使用Python爬取中国天气网和心知天气的数据,结合两者信息发送每日天气预报邮件。通过PyCharm将项目部署到阿里云服务器,实现定时运行程序,确保每天定时推送邮件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、爬取天气

中国天气网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---------
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值