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 相关文章推荐
haskell实现多线程服务器实例代码
Nov 26 Python
跟老齐学Python之眼花缭乱的运算符
Sep 14 Python
PyMongo安装使用笔记
Apr 27 Python
关于python的list相关知识(推荐)
Aug 30 Python
django rest framework之请求与响应(详解)
Nov 06 Python
python爬虫之xpath的基本使用详解
Apr 18 Python
Python实现的网页截图功能【PyQt4与selenium组件】
Jul 12 Python
初探利用Python进行图文识别(OCR)
Feb 26 Python
详解【python】str与json类型转换
Apr 29 Python
python-numpy-指数分布实例详解
Dec 07 Python
python开根号实例讲解
Aug 30 Python
Python必备技巧之函数的使用详解
Apr 04 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
咖啡界又出新概念,无需咖啡豆的分子咖啡
2021/03/03 咖啡文化
PHP n个不重复的随机数生成代码
2009/06/23 PHP
PHP中json_encode、json_decode与serialize、unserialize的性能测试分析
2010/06/09 PHP
php中检查文件或目录是否存在的代码小结
2012/10/22 PHP
PHP生成不同颜色、不同大小的tag标签函数
2013/09/23 PHP
destoon后台网站设置变成空白的解决方法
2014/06/21 PHP
PHP链表操作简单示例
2016/10/15 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
2017/07/20 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
Add Formatted Data to a Spreadsheet
2007/06/12 Javascript
jQuery第三课 修改元素属性及内容的代码
2010/03/14 Javascript
JavaScript.The.Good.Parts阅读笔记(二)作用域&闭包&减缓全局空间污染
2010/11/16 Javascript
extjs 初始化checkboxgroup值的代码
2011/09/21 Javascript
jquery实现背景墙聚光灯效果示例分享
2014/03/02 Javascript
JavaScript保留两位小数的2个自定义函数
2014/05/05 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 语法
2015/01/09 Javascript
jQuery Validate表单验证入门学习
2015/12/18 Javascript
Vue.js如何实现路由懒加载浅析
2017/08/14 Javascript
node内置调试方法总结
2018/02/22 Javascript
原生JS进行前后端同构
2018/04/22 Javascript
vue单页缓存存在的问题及解决方案(小结)
2018/09/25 Javascript
微信小程序自定义胶囊样式
2020/12/27 Javascript
[07:52]2014DOTA2 TI逗比武士游V社解说背后的故事
2014/07/10 DOTA
Python字符转换
2008/09/06 Python
使用Python获取Linux系统的各种信息
2014/07/10 Python
Python3实现的画图及加载图片动画效果示例
2018/01/19 Python
解决python3 json数据包含中文的读写问题
2018/05/10 Python
python自动结束mysql慢查询会话的实例代码
2019/10/27 Python
Python3.9又更新了:dict内置新功能
2020/02/28 Python
通过Python实现一个简单的html页面
2020/05/16 Python
Python如何实现邮件功能
2020/05/27 Python
HTML5进阶段内联标签汇总(小篇)
2016/07/13 HTML / CSS
华为智利官方商店:Huawei Chile
2020/05/09 全球购物
银行实习鉴定
2013/12/13 职场文书
信息合作协议书
2014/10/09 职场文书
企业年会祝酒词
2015/08/11 职场文书