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类的基础入门知识
Nov 24 Python
Using Django with GAE Python 后台抓取多个网站的页面全文
Feb 17 Python
Python 爬虫之超链接 url中含有中文出错及解决办法
Aug 03 Python
python unittest实现api自动化测试
Apr 04 Python
python复制文件到指定目录的实例
Apr 27 Python
Python socket实现的简单通信功能示例
Aug 21 Python
在python下使用tensorflow判断是否存在文件夹的实例
Jun 10 Python
Python使用lambda表达式对字典排序操作示例
Jul 25 Python
Python更换pip源方法过程解析
May 19 Python
使用python批量修改XML文件中图像的depth值
Jul 22 Python
在python中对于bool布尔值的取反操作
Dec 11 Python
分析Python list操作为什么会错误
Nov 17 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
php 数组排序 array_multisort与uasort的区别
2011/03/24 PHP
php微信公众平台开发类实例
2015/04/01 PHP
PHP设计模式之装饰器(装饰者)模式(Decorator)入门与应用详解
2019/12/13 PHP
JavaScript DOM 学习第三章 内容表格
2010/02/19 Javascript
jQuery 学习第五课 Ajax 使用说明
2010/05/17 Javascript
禁用页面部分JavaScript不是全部而是部分
2014/09/03 Javascript
javascript将url中的参数加密解密代码
2014/11/17 Javascript
JavaScript更改字符串的大小写
2015/05/07 Javascript
JS实现不使用图片仿Windows右键菜单效果代码
2015/10/22 Javascript
JavaScript设计模式经典之工厂模式
2016/02/24 Javascript
整理关于Bootstrap表单的慕课笔记
2017/03/29 Javascript
从零开始学习Node.js系列教程五:服务器监听方法示例
2017/04/13 Javascript
推荐10款扩展Web表单的JS插件
2017/12/25 Javascript
vue 微信授权登录解决方案
2018/04/10 Javascript
vue.js通过路由实现经典的三栏布局实例代码
2018/07/08 Javascript
vue keep-alive 动态删除组件缓存的例子
2019/11/04 Javascript
Python实现简单的多任务mysql转xml的方法
2017/02/08 Python
pandas DataFrame数据转为list的方法
2018/04/11 Python
python使用openpyxl库修改excel表格数据方法
2018/05/03 Python
pandas.dataframe按行索引表达式选取方法
2018/10/30 Python
解决Python print输出不换行没空格的问题
2018/11/14 Python
Python3转换html到pdf的不同解决方案
2019/03/11 Python
Python实现Selenium自动化Page模式
2019/07/14 Python
python过滤中英文标点符号的实例代码
2019/07/15 Python
pytorch实现建立自己的数据集(以mnist为例)
2020/01/18 Python
在python3中使用shuffle函数要注意的地方
2020/02/28 Python
python实现二分查找算法
2020/09/18 Python
Python 实现3种回归模型(Linear Regression,Lasso,Ridge)的示例
2020/10/15 Python
matplotlib教程——强大的python作图工具库
2020/10/15 Python
村居抓节水倡议书
2014/05/19 职场文书
天地会口号
2014/06/17 职场文书
班组长安全工作职责
2014/07/15 职场文书
2015年外联部工作总结
2015/04/03 职场文书
公司员工辞职信范文
2015/05/12 职场文书
东京审判观后感
2015/06/01 职场文书
贫民窟的百万富翁观后感
2015/06/09 职场文书