前言

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

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()

在这里插入图片描述


本文转载:CSDN博客