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解析xml模块封装代码
Feb 07 Python
使用django-suit为django 1.7 admin后台添加模板
Nov 18 Python
python操作gmail实例
Jan 14 Python
Python中的with...as用法介绍
May 28 Python
python 实现一个贴吧图片爬虫的示例
Oct 12 Python
linecache模块加载和缓存文件内容详解
Jan 11 Python
python对视频画框标记后保存的方法
Dec 07 Python
在CentOS7下安装Python3教程解析
Jul 09 Python
python线程里哪种模块比较适合
Aug 02 Python
Django用户认证系统如何实现自定义
Nov 12 Python
python切割图片的示例
Nov 12 Python
pytorch实现线性回归以及多元回归
Apr 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
php防注
2007/01/15 PHP
PHP学习笔记之二
2011/01/17 PHP
ThinkPHP单字母函数(快捷方法)使用总结
2014/07/23 PHP
PHP利用二叉堆实现TopK-算法的方法详解
2017/04/24 PHP
php数组遍历类与用法示例
2019/05/24 PHP
PHP常用的类封装小结【4个工具类】
2019/06/28 PHP
php的优点总结 php有哪些优点
2019/07/19 PHP
javaScript 读取和设置文档元素的样式属性
2009/04/14 Javascript
js中的this关键字详解
2013/09/25 Javascript
Jquery EasyUI中弹出确认对话框以及加载效果示例代码
2014/02/13 Javascript
Nodejs使用mysql模块之获得更新和删除影响的行数的方法
2014/03/18 NodeJs
分享网页检测摇一摇实例代码
2016/01/14 Javascript
前端设计师们最常用的JS代码汇总
2016/09/25 Javascript
Bootstrap文件上传组件之bootstrap fileinput
2016/11/25 Javascript
vue将时间戳转换成自定义时间格式的方法
2018/03/02 Javascript
jQuery实现的滑块滑动导航效果示例
2018/06/04 jQuery
vue中实现动态生成二维码的方法
2020/02/21 Javascript
JavaScript前端实现压缩图片功能
2020/03/06 Javascript
javascript中contains是否包含功能实现代码(扩展字符、数组、dom)
2020/04/07 Javascript
antd 表格列宽自适应方法以及错误处理操作
2020/10/27 Javascript
JavaScript实现筛选数组
2021/03/02 Javascript
用Python编写一个简单的Lisp解释器的教程
2015/04/03 Python
Python实现针对给定字符串寻找最长非重复子串的方法
2018/04/21 Python
python 快速把超大txt文件转存为csv的实例
2018/10/26 Python
用Python实现数据的透视表的方法
2018/11/16 Python
解决Djang2.0.1中的reverse导入失败的问题
2019/08/16 Python
使用tensorflow DataSet实现高效加载变长文本输入
2020/01/20 Python
Python列表元素删除和remove()方法详解
2021/01/04 Python
HTML5 本地存储和内容按需加载的思路和方法
2011/04/07 HTML / CSS
Hotels.com爱尔兰:全球酒店预订
2017/02/24 全球购物
英国高级健康和美容产品零售商:Life and Looks
2019/08/01 全球购物
副检察长四风问题对照检查材料思想汇报
2014/10/07 职场文书
勤俭节约倡议书范文
2015/04/29 职场文书
考研经验交流会策划书
2015/11/02 职场文书
2019年幼儿园管理条例范本!
2019/07/17 职场文书
MySQL 执行数据库更新update操作的时候数据库卡死了
2022/05/02 MySQL