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科学计算环境推荐——Anaconda
Jun 30 Python
Python学习笔记之os模块使用总结
Nov 03 Python
在Python程序中操作文件之isatty()方法的使用教程
May 24 Python
Python3.6正式版新特性预览
Dec 15 Python
Python读取mat文件,并保存为pickle格式的方法
Oct 23 Python
python绘制散点图并标记序号的方法
Dec 11 Python
python视频按帧截取图片工具
Jul 23 Python
Python 元组拆包示例(Tuple Unpacking)
Dec 24 Python
jupyter notebook 多环境conda kernel配置方式
Apr 10 Python
Scrapy 配置动态代理IP的实现
Sep 28 Python
python 下载文件的多种方法汇总
Nov 17 Python
Python实现Telnet自动连接检测密码的示例
Apr 16 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源代码
2013/06/26 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
PHP微商城开源代码实例
2019/03/27 PHP
Laravel (Lumen) 解决JWT-Auth刷新token的问题
2019/10/24 PHP
jQuery extend 的简单实例
2013/09/18 Javascript
简介JavaScript中search()方法的使用
2015/06/06 Javascript
再JavaScript的jQuery库中编写动画效果的指南
2015/08/13 Javascript
nodejs基于express实现文件上传的方法
2018/03/19 NodeJs
JS module的导出和导入的实现代码
2019/02/25 Javascript
vue中注册自定义的全局js方法
2019/11/15 Javascript
uni-app 组件里面获取元素宽高的实现
2019/12/27 Javascript
vue实现导航标题栏随页面滚动渐隐渐显效果
2020/03/12 Javascript
JavaScript中的函数式编程详解
2020/08/22 Javascript
浏览器JavaScript调试功能无法使用解决方案
2020/09/18 Javascript
vue3.0+vue-router+element-plus初实践
2020/12/02 Vue.js
Python实现栈的方法
2015/05/26 Python
Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
2017/05/08 Python
使用Python 正则匹配两个特定字符之间的字符方法
2018/12/24 Python
python pygame实现五子棋小游戏
2020/10/26 Python
wxPython实现列表增删改查功能
2019/11/19 Python
绝对令人的惊叹的CSS3折叠效果(3D效果)整理
2012/12/30 HTML / CSS
Move Free官方海外旗舰店:美国骨关节健康专业品牌
2017/12/06 全球购物
华纳兄弟工作室的官方授权商店:WB Shop
2018/11/30 全球购物
家得宝官网:The Home Depot(全球最大的家居装饰专业零售商)
2018/12/17 全球购物
环境科学专业大学生自荐信格式
2013/09/21 职场文书
社团文化节策划书
2014/02/01 职场文书
12月红领巾广播稿
2014/02/13 职场文书
学徒工职责
2014/03/06 职场文书
2014年民政工作总结
2014/11/26 职场文书
淘宝客服专员岗位职责
2015/04/07 职场文书
运动会开幕式致辞
2015/07/29 职场文书
修改MySQL的数据库引擎为INNODB的方法
2021/05/26 MySQL
《进击的巨人》新联动CM 兵长强势出击兽巨人
2022/04/05 日漫
MySQL 数据库范式化设计理论
2022/04/22 MySQL
Python Matplotlib绘制动画的代码详解
2022/05/30 Python
Win11 25163.1010更新补丁KB5016904推送,测试服务验证管道(附更新修复汇总)
2022/07/23 数码科技