Python实现抓取城市的PM2.5浓度和排名

本文给大家介绍的是一则使用Python实现抓取城市的PM2.5数据和排名,

主机环境:(Python2.7.9 / Win8_64 / bs4)

利用BeautifulSoup4来抓取 www.pm25.com 上的PM2.5数据,之所以抓取这个网站,是因为上面有城市PM2.5浓度排名(其实真正的原因是,它是百度搜PM2.5出来的第一个网站!)

程序里只对比了两个城市,所以多线程的速度提升并不是很明显,大家可以弄10个城市并开10个线程试试。

最后吐槽一下:上海的空气质量怎么这么差!!!

PM25.py代码如下:

#!/usr/bin/env python # -*- coding: utf-8 -*- # by ustcwq import urllib2 import threading from time import ctime from bs4 import BeautifulSoup def getPM25(cityname): site = 'http://www.pm25.com/' + cityname + '.html' html = urllib2.urlopen(site) soup = BeautifulSoup(html) city = soup.find(class_ = 'bi_loaction_city') # 城市名称 aqi = soup.find("a",{"class","bi_aqiarea_num"}) # AQI指数 quality = soup.select(".bi_aqiarea_right span") # 空气质量等级 result = soup.find("div",class_ ='bi_aqiarea_bottom') # 空气质量描述 print city.text + u'AQI指数:' + aqi.text + u'\n空气质量:' + quality[0].text + result.text print '*'*20 + ctime() + '*'*20 def one_thread(): # 单线程 print 'One_thread Start: ' + ctime() + '\n' getPM25('hefei') getPM25('shanghai') def two_thread(): # 多线程 print 'Two_thread Start: ' + ctime() + '\n' threads = [] t1 = threading.Thread(target=getPM25,args=('hefei',)) threads.append(t1) t2 = threading.Thread(target=getPM25,args=('shanghai',)) threads.append(t2) for t in threads: # t.setDaemon(True) t.start() if __name__ == '__main__': one_thread() print '\n' * 2 two_thread()

原文发布于微信公众号 - 大数据挖掘DT数据分析(datadw)

原文发表时间:2015-12-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏花叔的专栏

改装后适用于小游戏开发的createjs引擎

createjs是一个轻量的游戏引擎,轻量到都不觉得它是引擎了。小游戏发布初期,花叔给封装了一个相应的createjs版本引擎,访问这个地址:

942
来自专栏知晓程序

史上颜值最高的小程序!用它在微信群约人,谁都不会拒绝你

近半年来,虽然各种微信群协作小程序层出不穷,但很少有能超越「群约助手」的产品出现。

651
来自专栏知晓程序

从学美容、学理发,到艺术、古典乐和诗歌,社会人可以这样学文化

771
来自专栏Web 开发

新电池入手

842
来自专栏一个会写诗的程序员的博客

十分钟Spring Boot Kotlin快速开发爬虫:微技: 一个汇聚各大知名技术博客网站(ImportNew, OSChina, CNBlog, ITEye, SegmentFault, I...

还在奔忙于(ImportNew, OSChina, CNBlog, ITEye, SegmentFault, InfoQ )等等各大技术站点寻找技术文章吗?

651
来自专栏好好学java的技术栈

赠书活动第①期情况

833
来自专栏程序猿

你在“囤货”吗?

许多同学都在干货的周围神游,打开你的微信收藏,看看花多久时间能拉到底,收藏的文章“干货”多么?打开你标红的硬盘,里面收藏这四年前的毕向东Java...

972
来自专栏极客猴

爬虫系列的总结

时光荏苒,四个月时间如流沙般从手心中流逝。这四个月自己算是收获颇多。因为在张哥的影响下,自己渐渐喜欢上写作。自己将所学的爬虫知识、学习心得以及如何学习分享出来。...

833
来自专栏肖蕾的博客

第八章:演员演员类的简介Actor类使用以及方法flip()方法的使用splite

1.定义:在二维场景中,最基本的活动元素,它是构成游戏的基本元,演员拥有,位置,大小,起点,旋转角度,颜色等属性。 2.演员可以结合Action来实现演员在时...

441
来自专栏xingoo, 一个梦想做发明家的程序员

《Effective Java》—— 读后总结

这本书在Java开发的行业里,颇有名气。今天总算是粗略的看完了...后面线程部分和序列化部分由于心浮气躁看的不仔细。这个月还剩下一周,慢慢总结消化。 ?

1667

扫描关注云+社区