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数据结构之二叉树的遍历实例
Apr 29 Python
从Python程序中访问Java类的简单示例
Apr 20 Python
深度定制Python的Flask框架开发环境的一些技巧总结
Jul 12 Python
浅谈function(函数)中的动态参数
Apr 30 Python
速记Python布尔值
Nov 09 Python
Python实现繁体中文与简体中文相互转换的方法示例
Dec 18 Python
django如何通过类视图使用装饰器
Jul 24 Python
Python三元运算与lambda表达式实例解析
Nov 30 Python
使用python-pptx包批量修改ppt格式的实现
Feb 14 Python
找Python安装目录,设置环境路径以及在命令行运行python脚本实例
Mar 09 Python
Django与pyecharts结合的实例代码
May 13 Python
python 实现图像快速替换某种颜色
Jun 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
PHP中array_map与array_column之间的关系分析
2014/08/19 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
PHP页面输出时js设置input框的选中值
2016/09/30 PHP
php操作路径的经典方法(必看篇)
2016/10/04 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
javascript各种复制代码收集
2008/09/20 Javascript
jQuery实现360°全景拖动展示
2015/03/18 Javascript
JavaScript使用Max函数返回两个数字中较大数的方法
2015/04/06 Javascript
JavaScript中判断数据类型的方法总结
2016/05/24 Javascript
JS实现页面中所有img对象添加onclick事件及新窗口查看图片的方法
2016/12/27 Javascript
Vue.js项目模板搭建图文教程
2017/09/20 Javascript
JavaScript原型对象、构造函数和实例对象功能与用法详解
2018/08/04 Javascript
vue-for循环嵌套操作示例
2019/01/28 Javascript
Vue-input框checkbox强制刷新问题
2019/04/18 Javascript
JS函数本身的作用域实例分析
2020/03/16 Javascript
[54:24]Optic vs TNC 2018国际邀请赛小组赛BO2 第二场
2018/08/18 DOTA
Python入门篇之对象类型
2014/10/17 Python
python实现SOM算法
2018/02/23 Python
Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法
2018/03/13 Python
学python安装的软件总结
2019/10/12 Python
Python实现自动访问网页的例子
2020/02/21 Python
pymysql 插入数据 转义处理方式
2020/03/02 Python
如何将PySpark导入Python的放实现(2种)
2020/04/26 Python
Python爬取微信小程序Charles实现过程图解
2020/09/29 Python
利用css3如何设置没有上下边的列表间隔线
2017/07/03 HTML / CSS
美国求婚钻戒网站:Super Jeweler
2016/08/27 全球购物
婴儿地球:Baby Earth
2018/12/25 全球购物
俄罗斯GamePark游戏商店网站:购买游戏、游戏机和配件
2020/03/13 全球购物
荷兰美妆护肤品海淘网站:Beautinow(中文)
2020/11/22 全球购物
学雷锋活动总结范文
2014/04/25 职场文书
借款协议书
2014/09/16 职场文书
专家推荐信范文
2015/03/26 职场文书
高三数学复习备考教学反思
2016/02/18 职场文书
2016年幼儿园教师师德承诺书
2016/03/25 职场文书
导游词之河姆渡遗址博物馆
2019/10/10 职场文书
用Python可视化新冠疫情数据
2022/01/18 Python