Python爬取天气预报,Ta的城市开始降温了

Python爬取天气预报,Ta的城市开始降温了[Python常见问题]

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

python免费学习资料以及群交流解答点击即可加入

基本环境配置

  • python 3.6
  • pycharm
  • requests
  • parsel
  • csv

相关模块pip安装即可

确定目标网页

在这里插入图片描述

在这里插入图片描述

分析网页

打开开发者工具常规操作~
看一下网页返回的数据,是否有自己有要的~
在这里插入图片描述
在这里插入图片描述
如图所示,这个网站是静态网页,数据都在网页中的 tr 标签里面

代码部分

  • 请求网页数据
import requests
url = "https://weather.mipang.com/changsha/9yuefen.html"
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36"
}
response = requests.get(url=url, headers=headers)
  • 解析网页提取想要的数据
selector = parsel.Selector(response.text)
trs = selector.css(".tb tr")
for tr in trs:
    dit = {}
    date = tr.css("td:nth-child(1)::text").get()
    dit["日期"] = date
    max_temperature = tr.css("td:nth-child(2)::text").get()
    dit["最高温度"] = max_temperature
    min_temperature = tr.css("td:nth-child(3)::text").get()
    dit["最低温度"] = min_temperature
    weather = tr.css("td:nth-child(4)::text").get()
    dit["天气"] = weather
    wind = tr.css("td:nth-child(5)::text").get()
    dit["风向"] = wind
    wind_power = tr.css("td:nth-child(6)::text").get()
    dit["风力"] = wind_power
    print(dit)

在这里插入图片描述

  • 保存数据
f = open("天气.csv", mode="a", encoding="utf-8-sig", newline="")
csv_writer = csv.DictWriter(f, fieldnames=["日期", "最高温度", "最低温度", "天气", "风向", "风力"])
csv_writer.writeheader()
csv_writer.writerow(dit)
f.close()

在这里插入图片描述

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » Python爬取天气预报,Ta的城市开始降温了