(。・∀・)ノ゙嗨 大家好,这里是池鱼
又来跟你们唠叨唠叨两句~
最近这几天长沙的天气,晴两天雨一天,弟弟他们老师叫他们爬爬天气数据,还要顺便做个可视化分析
他倒好,上课不听,现在跑过来要我帮帮忙,还能怎么呢,那就帮帮他吧
顺便来给你们分享分享,Python如何爬取天气数据,并做可视化(这个也可以做毕设或者课堂作业哦)
那今天咱们就来扒拉扒拉这个网站吧
一. 思路分析
找到数据来源 静态的数据? 动态的数据?
network 抓包分析
二. 代码实现
import requests
import parsel
import csv
除了代码,还需要其他资料的 可以点私信哦
f = open('天气数据.csv', mode='a', newline='', encoding='utf-8')
csv_writer = csv.writer(f)
csv_writer.writerow(['日期','最高温度','最低温度','天气', '风向','城市'])
areaList = [54511, 58362, 59287, 59493]
for areaId in areaList:
if areaId == 54511:
area = "北京"
elif areaId == 58362:
area = "上海"
elif areaId == 59287:
area = "广州"
else:
area = "深圳"
690643772 ### 源码领取
for year in range(2011, 2023):
for month in range(1, 13):
url = f'https://tianqi.2345.com/Pc/GetHistory?areaInfo%5BareaId%5D={areaId}&areaInfo%5BareaType%5D=2&date%5Byear%5D={year}&date%5Bmonth%5D={month}'
response = requests.get(url)
.text: 获取文本内容
.content: 二进制数据 图片/音频/视频
.json(): 获取json数据 字符串 {“”:“”,“”:“”, “”:“”}
json_data = response.json()
解析的是什么数据?
结构化数据: json数据 字典取值提取内容
非结构化数据: 网页源代码 css/xpath/re bs4/lxml/parsel/re…
html_data = json_data['data']
# tr
select = parsel.Selector(html_data)
trs = select.css('tr')[1:]
for tr in trs:690643772 ### 源码领取
# .get(): 获取单个标签
# .getall(): 获取所有标签
td = tr.css('td::text').getall()
td.append(area)
csv_writer.writerow(td)
print(td)
今天的案例分享到这里就结束啦
对文章有问题的铁汁评论区留言,或者可以私信我哦