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使用新浪微博api上传图片到微博示例
Jan 10 Python
总结Python编程中三条常用的技巧
May 11 Python
python xlsxwriter创建excel图表的方法
Jun 11 Python
Django中的ajax请求
Oct 19 Python
对pandas中时间窗函数rolling的使用详解
Nov 28 Python
Python闭包思想与用法浅析
Dec 27 Python
python实现拼图小游戏
Feb 22 Python
使用OpenCV获取图片连通域数量,并用不同颜色标记函
Jun 04 Python
4款Python 类型检查工具,你选择哪个呢?
Oct 30 Python
python hmac模块验证客户端的合法性
Nov 07 Python
Python截图并保存的具体实例
Jan 14 Python
总结Python连接CS2000的详细步骤
Jun 23 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/02 PHP
php使用substr()和strpos()联合查找字符串中某一特定字符的方法
2015/05/12 PHP
大家都应该掌握的PHP关联数组使用技巧
2015/12/25 PHP
Referer原理与图片防盗链实现方法详解
2019/07/03 PHP
php 比较获取两个数组相同和不同元素的例子(交集和差集)
2019/10/18 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
THINKPHP5分页数据对象处理过程解析
2020/10/28 PHP
来自chinaz的ajax获取评论代码
2008/05/03 Javascript
HTML5之lang属性与dir属性的详解
2013/06/19 Javascript
JS 获取浏览器和屏幕宽高等信息的实现思路及代码
2013/07/31 Javascript
js字母大小写转换实现方法总结
2013/11/13 Javascript
用jquery写的菜单从左往右滑动出现
2014/04/11 Javascript
用javascript关闭本窗口不弹出询问框的方法
2014/09/12 Javascript
jQuery实现按键盘方向键翻页特效
2015/03/18 Javascript
JS实现模拟百度搜索“2012世界末日”网页地震撕裂效果代码
2015/10/31 Javascript
基于 Node.js 实现前后端分离
2016/04/23 Javascript
js仿淘宝商品放大预览功能
2017/03/15 Javascript
JavaScript中Require调用js的实例分享
2017/10/27 Javascript
javascript自定义事件功能与用法实例分析
2017/11/08 Javascript
jQuery实现百度图片移入移出内容提示框上下左右移动的效果
2018/06/05 jQuery
jQuery简单实现根据日期计算星期几的方法
2019/01/09 jQuery
微信小程序 swiper 组件遇到的问题及解决方法
2019/05/26 Javascript
vue 中几种传值方法(3种)
2019/11/12 Javascript
vue自定义正在加载动画的例子
2019/11/14 Javascript
学习 Vue.js 遇到的那些坑
2021/02/02 Vue.js
[02:13] 完美世界DOTA2联赛PWL DAY5集锦
2020/11/03 DOTA
Python3的高阶函数map,reduce,filter的示例详解
2019/07/23 Python
django 模型字段设置默认值代码
2020/07/15 Python
Hanro官网:奢华男士和女士内衣、睡衣和家居服
2018/10/25 全球购物
社区活动邀请函范文
2014/01/29 职场文书
关键在于落实心得体会
2014/09/03 职场文书
信仰心得体会
2014/09/05 职场文书
写景作文评语集锦
2014/12/25 职场文书
2019旅游导游工作总结
2019/06/27 职场文书
Python中快速掌握Data Frame的常用操作
2021/03/31 Python
详解Vue中$props、$attrs和$listeners的使用方法
2022/02/18 Vue.js