最近学习了如何在2345天气网上爬取历史天气数据,并使用pandas库对数据进行清洗和导出。不过,本文方法对其它网站并不一定适用,主要是记录一种思考的方式。
南京的历史天气数据在这个网站上:http://tianqi.2345.com/wea_history/58238.htm 。其它城市的操作步骤类似,将后面的五位数代号修改一下即可。
获取待获取数据列表
待爬取数据在js里面,例如http://tianqi.2345.com/t/wea_history/js/202001/58238_202001.js。这是后续对数据进行处理的原型,得仔细观察结构,而后抽丝剥缕。
months = []
year = 2020
for i in range(12):
months.append("%d%02d"%(year, i+1))
todo_urls = [f"http://tianqi.2345.com/t/wea_history/js/{month}/58238_{month}.js" for month in months]
结果:
查看并提取数据
点开链接,就能看到数据的具体样式了。因此先下载数据,并对其进行针对性处理。
天气数据的存储方式
首先看看数据到底是什么:
import requests