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


Posted in Python onMarch 19, 2015

主机环境:(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()

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

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

以上就是本文所述的全部内容了,希望大家能够喜欢。

Python 相关文章推荐
Python常用小技巧总结
Jun 01 Python
Python中asyncore异步模块的用法及实现httpclient的实例
Jun 28 Python
浅析python中的分片与截断序列
Aug 09 Python
如何利用python查找电脑文件
Apr 27 Python
分享vim python缩进等一些配置
Jul 02 Python
Python实现批量修改图片格式和大小的方法【opencv库与PIL库】
Dec 03 Python
python pandas获取csv指定行 列的操作方法
Jul 12 Python
详解python中index()、find()方法
Aug 29 Python
Jupyter notebook 远程配置及SSL加密教程
Apr 14 Python
Python在线和离线安装第三方库的方法
Oct 31 Python
python定义具名元组实例操作
Feb 28 Python
Python中使用subprocess库创建附加进程
May 11 Python
python在windows命令行下输出彩色文字的方法
Mar 19 #Python
python通过colorama模块在控制台输出彩色文字的方法
Mar 19 #Python
python实现颜色rgb和hex相互转换的函数
Mar 19 #Python
python实现从一组颜色中找出与给定颜色最接近颜色的方法
Mar 19 #Python
python遍历类中所有成员的方法
Mar 18 #Python
python获取图片颜色信息的方法
Mar 18 #Python
Python调用C语言开发的共享库方法实例
Mar 18 #Python
You might like
对盗链说再见...
2006/10/09 PHP
实例(Smarty+FCKeditor新闻系统)
2007/01/02 PHP
php Imagick获取图片RGB颜色值
2014/07/28 PHP
php基于base64解码图片与加密图片还原实例
2014/11/03 PHP
Zend Framework教程之Zend_Db_Table用法详解
2016/03/21 PHP
[原创]解决wincache不支持64位PHP5.5/5.6的问题(提供64位wincache下载)
2016/06/22 PHP
PHP设计模式之工厂模式实例总结
2017/09/01 PHP
Javascript----文件操作
2007/01/18 Javascript
js中flexible.js实现淘宝弹性布局方案
2020/06/23 Javascript
jQuery ajax请求struts action实现异步刷新
2017/04/19 jQuery
浅谈struts1 & jquery form 文件异步上传
2017/05/25 jQuery
微信小程序视图template模板引用的实例详解
2017/09/20 Javascript
React精髓!一篇全概括小结(急速)
2019/05/23 Javascript
vue 实现滚动到底部翻页效果(pc端)
2019/07/31 Javascript
Vue的双向数据绑定实现原理解析
2020/02/17 Javascript
javaScript实现一个队列的方法
2020/07/14 Javascript
JS跨浏览器解析XML应用过程详解
2020/10/16 Javascript
在antd Table中插入可编辑的单元格实例
2020/10/28 Javascript
跟老齐学Python之大话题小函数(2)
2014/10/10 Python
python实现在字符串中查找子字符串的方法
2015/07/11 Python
Python决策树分类算法学习
2017/12/22 Python
Python实现学生成绩管理系统
2020/04/05 Python
python利用socketserver实现并发套接字功能
2018/01/26 Python
解决python中 f.write写入中文出错的问题
2018/10/31 Python
python实现简单图书管理系统
2019/11/22 Python
简单总结CSS3中视窗单位Viewport的常见用法
2016/02/04 HTML / CSS
HTML5视频播放插件 video.js介绍
2018/09/29 HTML / CSS
中国跨境电商:Tomtop
2017/03/16 全球购物
爱淘宝:淘宝网购物分享平台
2017/04/28 全球购物
DNA测试:Orig3n
2019/03/01 全球购物
建筑专业毕业生推荐信
2013/11/21 职场文书
祖国在我心中演讲稿500字
2014/05/04 职场文书
写求职信有哪些注意事项
2014/05/08 职场文书
社会学专业求职信
2014/07/17 职场文书
员工试用期自我鉴定范文
2014/09/15 职场文书
关于食品安全的演讲稿范文(三篇)
2019/10/21 职场文书