# 四市天气数据爬取与可视化分析
探索四个城市的天气状况!使用Python爬虫获取秦皇岛、济南、北京和深圳的天气数据,然后利用数据可视化技术展示这些城市的气候趋势。通过绘制精美的图表和图形,深入了解最高温度、最低温度和降水量等指标的变化。分析城市之间的相似性和差异性,揭示季节性变化和气候特征。无论是旅游规划还是气象研究,这个项目将为您提供有价值的见解。发现城市天气的奥秘,带您走进数据驱动的气象世界!
爬虫部分
数据来源:https://tianqi.2345.com/wea_history/54449.htm
数据说明:
作者想要爬取的数据为2013年至2022年十年间,秦皇岛、北京、济南和深圳四个城市的天气数据,包括日期,最高温度,最低温度,天气,风向。 ###代码:
import requests # 发送请求要用的模块 需要额外安装的
import parsel
import csv
f = open('天气1.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.writer(f)
csv_writer.writerow(['日期', '最高温度', '最低温度', '天气', '风向', '城市'])
city_list = [ 54449,54511, 54823, 59493]
for city in city_list:
city_name = ''
if city == 54449:
city_name = '秦皇岛'
elif city == 54511:
city_name = '北京'
elif city == 54823:
city_name = '济南'
elif city == 59493:
city_name = '深圳'
for year in range(2013, 2023):
for month in range(1, 13):
url = f'https://tianqi.2345.com/Pc/GetHistory?areaInfo%5BareaId%5D={city}&areaInfo%5BareaType%5D=2&date%5Byear%5D={year}&date%5Bmonth%5D={month}'
# 1. 发送请求
response = requests.get(url=url)
# 2. 获取数据
html_data = response.json()['data']
# 3. 解析数据
select = parsel.Selector(html_data)
trs = select.css('.history-table tr') # 拿到31个tr
for tr in trs[1:]: # 第一个表头不要
tds = tr.css('td::text').getall() # 针对每个tr进行提取 取出所有的td里面的内容
tds.append(city_name) # 把城市追加到列表里面
print(tds)
# 4. 保存数据
csv_writer.writerow(tds)
最终生成一个名为天气1.csv的文件
完整的源码和详细的文档,上传到了 【WRITE-BUG数字空间】,需要的请自取:https://www.writebug.com/code/3e0eb574-209c-11ee-9350-0242c0a85010/#