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的迭代器与生成器实例详解
Jul 16 Python
基于Python __dict__与dir()的区别详解
Oct 30 Python
CentOS 6.5中安装Python 3.6.2的方法步骤
Dec 03 Python
python特性语法之遍历、公共方法、引用
Aug 08 Python
python递归全排列实现方法
Aug 18 Python
python儿童学游戏编程知识点总结
Jun 03 Python
python读csv文件时指定行为表头或无表头的方法
Jun 26 Python
基于python3生成标签云代码解析
Feb 18 Python
python中wx模块的具体使用方法
May 15 Python
什么是python的必选参数
Jun 21 Python
OpenCV绘制圆端矩形的示例代码
Aug 30 Python
关于python pygame游戏进行声音添加的技巧
Oct 24 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执行速率优化技巧小结
2008/03/15 PHP
php+ajax实现无刷新动态加载数据技术
2015/04/28 PHP
win7系统配置php+Apache+mysql环境的方法
2015/08/21 PHP
初识PHP中的Swoole
2016/04/05 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
详解CSS样式中的 !important * _ 符号
2021/03/09 HTML / CSS
给网站上的广告“加速”显示的方法
2007/04/08 Javascript
关于恒等于(===)和非恒等于(!==)
2007/08/20 Javascript
仅Firefox中链接A无法实现模拟点击以触发其默认行为
2011/07/31 Javascript
利用python分析access日志的方法
2016/10/26 Javascript
js 实现获取name 相同的页面元素并循环遍历的方法
2017/02/14 Javascript
js生成word中图片处理方法
2018/01/06 Javascript
新版vue-cli模板下本地开发环境使用node服务器跨域的方法
2018/04/03 Javascript
jQuery实现仿京东防抖动菜单效果示例
2018/07/06 jQuery
vue.js实现双击放大预览功能
2020/06/23 Javascript
vuecli3.x中轻松4步带你使用tinymce的步骤
2020/06/25 Javascript
vue自动添加浏览器兼容前后缀操作
2020/08/13 Javascript
Linux下使用python自动修改本机网关代码分享
2015/05/21 Python
Python实现以时间换空间的缓存替换算法
2016/02/19 Python
Python循环中else,break和continue的用法实例详解
2019/07/11 Python
python 实现按对象传值
2019/12/26 Python
Python2和Python3中@abstractmethod使用方法
2020/02/04 Python
Python3列表List入门知识附实例
2020/02/09 Python
Python爬取365好书中小说代码实例
2020/02/28 Python
Python unittest单元测试框架及断言方法
2020/04/15 Python
基于Python爬取51cto博客页面信息过程解析
2020/08/25 Python
中国医药集团国药在线:国药网
2017/02/06 全球购物
母亲追悼会答谢词
2014/01/27 职场文书
群众路线教育党课主持词
2014/04/01 职场文书
党课培训主持词
2014/04/01 职场文书
见习报告怎么写
2014/10/31 职场文书
数学教师求职信范文
2015/03/20 职场文书
2015年城管个人工作总结范文
2015/04/20 职场文书
地心历险记观后感
2015/06/15 职场文书
敬老院活动感想
2015/08/07 职场文书
《夜莺的歌声》教学反思
2016/02/22 职场文书