Python这门语言因其简单强大已经火了很久了,但我接触的比较晚,前几个月因为一篇博客开始初步了解这门语言,并且之后模仿某位北邮的前辈的微博写了一个新浪微博的爬虫

这里给出链接:python编写的新浪微博爬虫

当时为了能够顺便把从微博上抓下来的数据存储起来,顺便装了MySQL,之所以用MySQL,主要是因为Python支持MySQL的插件比较好找,比SQLserver好找一些,不过本人对数据库了解比较少,顺便学习了一些数据库方面的简单操作。

写好之后运行起来发现有些问题,主要是新浪微博的服务器对访问次数和访问频率有限制,以至于我下载了一些数据后,服务器会自动屏蔽不再传数据给我,当时挺困惑,网上有人说让程序睡一段时间再继续抓数据,当时也请教了北邮的前辈,也没给我一个明确的答复,也或许是自己写的问题,所以读到这里的朋友也可以提想法哈。或者到我微薄上留言:http://weibo.com/u/1820299335

---------------------------------------------------------分割线-----------------------------------------------

最近看国内天气质量堪忧,所以心血来潮想要再写个程序把空气质量数据爬下来分析一下,于是开始动手,由于之前写新浪微博爬虫的经验,这次比较快,因为不像新浪微博需要模拟用户登录,中华人民共和国环境保护部--数据中心 的网页比起微博还算简单,所以很快代码就写好了,期间由于正则表达式运用不熟练,在抓取城市名称和污染指数时遇到点小麻烦,网页的html代码如下:

北京市2014-08-08 20:0085良PM2.5

是表格形式的,关键项的前后正则表达式不太会写,这里还望高手指点,不过我找到了替代的方法,网页下面还有一部分相关可以提取的html代码:

这个就方便提取多了,用python的正则表达式包可以一次性把所有的结果保存下来,其实也就这么几行代码:

def getList(self,text):

pat = re.compile(''.encode('utf-8'))

try:

cityList = pat.findall(text)

except:

cityList = None

return cityList

其中加了异常处理,一面在长时间运行过程中,出现错误程序异常终止。

第一次抓数据是从2014年1月抓到8月,(不知道为什么网站上没有2014年以前的空气质量数据,可能数据库没有开通吧),抓取数据的时间间隔为12小时,结果处理完生成GIF动图后发现,时间间隔略长,画面不连续,于是重写抓取,这次采用的是2个小时,一共运行了10几个小时把所有数据都下载下来了。

然后就是想办法做数据可视化,以前没用过地图数据可视化的工具,但是Matlab用的比较熟,Matlab做这种数据处理和图像处理都比较强大,所以就自己纯手工来进行数据可视化吧。

在网上截了个中国地图当背景,然后想办法用Matlab往上画数据。期间遇到点小麻烦,就是从网上找的城市坐标是经纬度表示的,需要映射到地图图像上相应的位置,我直接选用最简单的线性映射方式进行映射,结果发现在低纬度的城市映射结果还算准确,但是高纬度的城市要差200多km,无语了,怎么会差这么多!查了下发现,因为地图是百度地图截屏的,百度地图用的是所谓的麦卡托投影法,也就是圆柱投影,亏自己以前在本科时研究过光纤陀螺测量地理维度,这个都没注意到。修正之后城市的投影位置准确多了。比如说首都的位置:

把所有城市的空气质量用渐变色标在地图上,才发现自己美工差:

(颜色随着空气污染指数的变差按:绿(优)、黄(良)、橙(轻微污染)、红(轻度污染)、紫(中度污染)、黑(重度污染)的顺序变化)

一个一个的红点像是生了皮肤病,还是用插值处理一下吧,还好Matlab在这方面功能比较强大,不用费工夫:

好了很多,当然上图的效果也是经过小小处理过的,总的来讲画面感同专业软件比还有一定差距,但考虑到我是用Matlab画出来的,这个画质我接受了,能够说明问题就行。

然后我挑选了一些有特点的空气污染比较严重的日子,制作生GIF动图,动图使用PhotoShop制作的。图中着重关注红紫色的雾霾在大气中的移动。

这个是14年1月2日14点 至14年1月4日18点,这次严重雾霾天影响全国,雾霾主要产生地主要有三个,河北山东一带,湖南湖北一带,重庆四川一带,总的看来是人口稠密,工业较多,而且也有地形因素在内。

左:(2014-01-11-18至2014-01-13-08)右:(2014-01-19-14至2014-01-20-18),北方的雾霾天还是比较严重的,并且冬季多北风,雾霾向南方或东南方向扩散,当时南方的很多雾霾天也就这么产生了。。。

(2014-03-17-06至2014-03-19-06)其实北京地区的污染源也并不完全是北京河北,比如这个就说明污染来自春季的蒙古大草原,查询当天北京是北风。。。

(2014-05-26-20 至2014-05-28-00)再如这张,也比较明显,查询当天北京天气是浮尘,也是北风

总的来说,空气质量差是全国性的,污染源比较多,只不过有些地方地理因素扩散起来快一些,扩散慢的话,即便是山清水秀的贵州也难免有雾霾。过了4月份,全国性的雾霾天明显有所减少。

python抓取微博数据中心_空气质量数据网页爬虫加数据处理相关推荐

  1. python爬取学籍_仝卓学籍造假微博道歉,用Python抓取微博的评论看看群众都说什么...

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 欢迎关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不 ...

  2. python抓取微博热搜列表

    20200912 - 今天收拾自己以前的代码,看到了很久之前写的一个抓取微博热搜的代码,最起码的两年了,然后跑了一下,居然还行,只不过并不是理想,数据上有些偏差,但是能用.功能就是每1分钟抓取一次,然 ...

  3. selenium+python抓取微博时遇到“展开全文”

    抓取微博时遇到"展开全文"时,在网上搜的很多都是利用工具设置二级规则之类,尝试之后利用selenium+python直接模拟点击,抓取展开全文后的文本. 在此利用的是xpath定位 ...

  4. Python 抓取软科中国大学排名首页数据

    文章目录 利用requests.BeautifulSoup.xlwings库抓取软科中国大学排名首页数据 (1)软科中国大学排名 (2)调用requests模块中get方法,get方法包括header ...

  5. [Python] 抓取时光网的电影列表并生成网页

    抓取时光网的电影列表并生成网页 源码 https://github.com/YouXianMing/BeautifulSoup4-WebCralwer 分析 利用BeautifulSoup进行分析网页 ...

  6. 空气质量数据网页爬虫加数据处理

    Python这门语言因其简单强大已经火了很久了,但我接触的比较晚,前几个月因为一篇博客开始初步了解这门语言,并且之后模仿某位北邮的前辈的微博写了一个新浪微博的爬虫 这里给出链接:python编写的新浪 ...

  7. python抓取微博数据中心_微博爬虫开源项目汇总大全

    作者:阿橙 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模 ...

  8. python每隔半个小时执行一次_一篇文章教你用Python抓取微博评论

    [Part1--理论篇] 试想一个问题,如果我们要抓取某个微博大V微博的评论数据,应该怎么实现呢?最简单的做法就是找到微博评论数据接口,然后通过改变参数来获取最新数据并保存.首先从微博api寻找抓取评 ...

  9. python 抓取微博评论破亿_一篇文章教会你使用Python定时抓取微博评论

    [Part1--理论篇] 试想一个问题,如果我们要抓取某个微博大V微博的评论数据,应该怎么实现呢?最简单的做法就是找到微博评论数据接口,然后通过改变参数来获取最新数据并保存.首先从微博api寻找 抓取 ...

最新文章

  1. 原创 | 入门“大数据”,你需要通读这18本书
  2. USE SysBench test Mysql and PostgreSQL - 2
  3. python读取路径太长_路径名太长,无法打开?
  4. 通信大数据应用未来还有很大的想象空间
  5. idea新建maven项目没有src目录
  6. linux文件分割(将大的日志文件分割成小的)
  7. android system webview diable,FV悬浮球橡皮泥主题
  8. python基本定制之__new__, __init__
  9. 吴恩达《cs229-机器学习》:1、梯度下降法与一元线性回归
  10. 药品缺陷检测中的机器视觉技术
  11. 计算机的超级终端程序无法使用,超级终端怎么用?
  12. 电流测试c语言算法,真有效值的定义及其C语言算法推导
  13. 计算机如何切换显卡,怎么设置独显-Nvidia显卡双显卡切换就这么简单
  14. 利用FME对坐标文件进行坐标转换
  15. 总结numpy中的ndarray,非常齐全
  16. STC12单片机双串口共用独立波特率发生器发生波特率
  17. TCP协议为什么需要三次握手?
  18. 2020语数英小学初中课程百度云学而思Python笔记
  19. Left 4 Dead 2如何局域网联机
  20. 梦里花落知多少,真性情是三毛

热门文章

  1. PHPChina留言板实例
  2. 【COGS】1577 [OIBH 练习赛#6]战地统计系统 四分树
  3. 按键精灵,简单游戏脚本
  4. Swiper的API及自定义分页器等问题-淘宝触屏版首页制作
  5. C语言实现三子棋游戏 代码+思路+电脑下棋算法
  6. python语言是非跨平台语言_Python语言初探【转载】
  7. pygame系列_原创百度随心听音乐播放器_完整版
  8. 城市简码_如何使用简码在WordPress中添加Twitter Bootstrap CSS
  9. 外面的世界到底是什么
  10. 统计数据会说谎_社交媒体统计数据何时说谎以及如何处理