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 条评论
登录 后参与评论

相关文章

来自专栏SAP最佳业务实践

SAP最佳业务实践:生产订单拆分-工具生产(236)-2生产订单

CO01创建工具生产的生产订单 直接创建工具生产的生产订单,无需使用 MRP 计划。 角色生产计划员 后勤 ®生产 ®车间现场控制 ®订单 ®创建 ®含物料 ...

2954
来自专栏Netkiller

Elasticsearch 一键安装含中文分词

本文节选择电子书《Netkiller Database 手札》 24.1. 安装 Elasticsearch 使用 Netkiller OSCM 一键安装 El...

3665
来自专栏张善友的专栏

SQL Server 2008 R2 主数据服务

主数据服务(Master Data Services,MDS)既是一个概念又是一个产品,主数据服务的概念是对核心业务数据有一个集中的数据入口看守人,数据项如客户...

1896
来自专栏SAP最佳业务实践

SAP最佳业务实践:无变式配置按订单生产(148)-4分组件的零件生产

image.png 1、分组件的库存采购 在实际业务情况中,原材料通常从外部供应商处购得(可包括在标准采购处理中)。 半成品S224包含原材料R124。 您可...

2658
来自专栏SAP最佳业务实践

SAP最佳业务实践:MM–转包(138)-3交货请求

3.4 MIGO创建外向交货请求 此活动为要发送到供应商的部件创建外向交货请求。 角色:仓库文员 后勤-物料管理-库存管理-货物一定-货物移动 (MIGO) ...

3506
来自专栏Jerry的SAP技术分享

Jerry的通过CDS view + Smart Template 开发Fiori应用的blog合集

S4/HANA里有一个新的UI框架叫做Smart template, 配合ABAP后台的CDS view技术,能够让developer以Metadata dri...

1968
来自专栏SAP最佳业务实践

SAP最佳业务实践:重复制造(149)-4发料

1、MF60备料 在此活动中,您为生产备料。如果在生产存储地点有充足的库存可用,将不生成行项目。 必须有库存。 角色:车间主任 后勤- 生产-重复制造 -备料-...

3768
来自专栏SAP最佳业务实践

想学FM系列(9)-SAP FM模块:主数据(7)-主数据权限、报表

3.1.6 账户分配要素主数据权限检查 在FM模块当中部份主数据的权限检查,SAP支持不是很好,比如对基金计划程序的权限支持不是很好。针对集团式管控的企业,对F...

3316
来自专栏SAP最佳业务实践

SAP最佳业务实践:无变式配置按订单生产(148)-5产成品的技术变更

image.png 1、CSKB客户请求技术变更 客户请求作技术变更。步骤的目的是更改产品的配置(添加物料 R20)。 在BOM 浏览器中,用户参数设置是用来...

2614
来自专栏SAP最佳业务实践

SAP最佳业务实践:含变式配置按订单生产(147)-2销售过程

1、VA01输入销售订单 您收到了一个按订单生产的销售订单请求。在本活动中,您将输入此销售订单。 角色销售助理 后勤 - 销售和分销-销售-订单-创建 1. 在...

5287

扫码关注云+社区