czhou28的个人博客分享 http://blog.sciencenet.cn/u/czhou28

博文

各地过去n年的空气质量数据的快速爬取------- 以聊城为例

已有 976 次阅读 2021-2-18 18:46 |个人分类:软件学习|系统分类:科研笔记

目的:快速收集网站上的各种数据,整理成excel数据,以利分析。

    此处,以爬取聊城过去8年的空气质量(数据密度:每天一组数据)为例,其他地区爬取方法基本一样

语言:Python 


http://www.tianqihoubao.com/aqi/liaocheng-202012.html 此网站上有过去8年间每天的空气质量(数据还在更新中),利用python语言的几行代码快速爬取。检查该网站的源代码,发现此数据为table格式,可以利用pandas模块的的pd.read_html()快速爬取。如果数据格式是list格式,则要用bs4urllib定义函数来爬取。并且该网站很友好,没有反爬虫设置,无需设置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在逐年下降,除了每年明显的季节变化(和气温大致成反比例)外。

1111.png 




http://blog.sciencenet.cn/blog-856115-1272767.html

上一篇:强大绘制地图功能basemap模块的安装(同时安装到几个版本上)
下一篇:python第三方模块的安装方法总结

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2021-10-22 09:36

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部