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算法之栈(stack)的实现
Aug 18 Python
Python使用函数默认值实现函数静态变量的方法
Aug 18 Python
Python实现扩展内置类型的方法分析
Oct 16 Python
Python中asyncio与aiohttp入门教程
Oct 16 Python
django admin组件使用方法详解
Jul 19 Python
python gdal安装与简单使用
Aug 01 Python
python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例
Feb 28 Python
Python如何用filter函数筛选数据
Mar 05 Python
Python猴子补丁Monkey Patch用法实例解析
Mar 23 Python
Python-opencv实现红绿两色识别操作
Jun 04 Python
Python列表的深复制和浅复制示例详解
Feb 12 Python
Python实现智慧校园自动评教全新版
Jun 18 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实现视频文件上传完整实例
2014/08/28 PHP
浅析PHP中strlen和mb_strlen的区别
2014/08/31 PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
2019/06/25 PHP
Javascript开发包大全整理
2006/12/22 Javascript
网页自动刷新,不产生嗒嗒声的一个解决方法
2007/03/27 Javascript
AJAX 网页保留浏览器前进后退等功能
2011/02/12 Javascript
js动态生成Html元素实现Post操作(createElement)
2015/09/14 Javascript
图解js图片轮播效果
2015/12/20 Javascript
JS取模、取商及取整运算方法示例
2016/10/13 Javascript
jQ处理xml文件和xml字符串的方法(详解)
2016/11/22 Javascript
Bootstrap模态框案例解析
2017/03/05 Javascript
webpack教程之webpack.config.js配置文件
2017/07/05 Javascript
使用jQuery实现动态添加小广告
2017/07/11 jQuery
Vue三层嵌套路由的示例代码
2018/05/05 Javascript
Vue自定义指令封装节流函数的方法示例
2018/07/09 Javascript
node中的cookie的具体使用
2018/09/13 Javascript
Vue实现table上下移动功能示例
2019/02/21 Javascript
vue 项目引入echarts 添加点击事件操作
2020/09/09 Javascript
Vue 修改网站图标的方法
2020/12/31 Vue.js
[06:07]刀塔密之二:攻之吾命受之吾幸
2014/07/03 DOTA
Python制作Windows系统服务
2017/03/25 Python
Python实现调度算法代码详解
2017/12/01 Python
基于python指定包的安装路径方法
2018/10/27 Python
python生成器推导式用法简单示例
2019/10/08 Python
详解在python操作数据库中游标的使用方法
2019/11/12 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
2020/06/03 Python
python 实现Requests发送带cookies的请求
2021/02/08 Python
详解如何使用rem或viewport进行移动端适配
2020/08/14 HTML / CSS
全球酒店比价网:HotelsCombined
2017/06/20 全球购物
周年庆典邀请函范文
2014/01/24 职场文书
销售经理岗位职责
2014/03/16 职场文书
委托代理人授权委托书范本
2014/09/24 职场文书
学生违反校规检讨书
2014/10/28 职场文书
2014年学校禁毒工作总结
2014/12/23 职场文书
机关单位保密工作责任书
2015/05/11 职场文书
Mysql 用户权限管理实现
2021/05/25 MySQL