||
目的:快速收集网站上的各种数据,整理成excel数据,以利分析。
此处,以爬取聊城过去8年的空气质量(数据密度:每天一组数据)为例,其他地区爬取方法基本一样
语言:Python
在http://www.tianqihoubao.com/aqi/liaocheng-202012.html 此网站上有过去8年间每天的空气质量(数据还在更新中),利用python语言的几行代码快速爬取。检查该网站的源代码,发现此数据为table格式,可以利用pandas模块的的pd.read_html()快速爬取。如果数据格式是list格式,则要用bs4和urllib定义函数来爬取。并且该网站很友好,没有反爬虫设置,无需设置UserAgent。有反爬设置,修改UserAgent等糊弄糊弄数据网站就可爬(扒^_^)取
再者,很多爬虫程序段可以搜索网上,拿来主义,加以修改一下,省了很多劲。
代码:
import pandas as pd
dates = pd.date_range('20131028', '20210201', freq='MS').strftime('%Y%m') # 构造出日期序列 便于之后构造url
for i in range(len(dates)):
df = pd.read_html(f'http://www.tianqihoubao.com/aqi/liaocheng-{dates[i]}.html', encoding='gbk', header=0)[0]
if i == 0:
df.to_csv('历年聊城空气质量数据.csv', mode='a+', index=False,header=1) # 写入第一个数据表,含有表头
i += 1
else:
df.to_csv('历年聊城空气质量数据.csv', mode='a+', index=False, header=False) #追加写入后续的数据(无表头)到上一步的csv数据表中
这样就能迅速得到csv格式的历年来每天的空气质量数据。
可以发现:过去8年间的PM2.5和SO2在逐年下降,除了每年明显的季节变化(和气温大致成反比例)外。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-21 23:42
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社