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 相关文章推荐
Django中对通过测试的用户进行限制访问的方法
Jul 23 Python
Python聚类算法之基本K均值实例详解
Nov 20 Python
Python2.7基于笛卡尔积算法实现N个数组的排列组合运算示例
Nov 23 Python
python+flask实现API的方法
Nov 21 Python
Django实现发送邮件功能
Jul 18 Python
python使用sessions模拟登录淘宝的方式
Aug 16 Python
python 微信好友特征数据分析及可视化
Jan 07 Python
Python sklearn库实现PCA教程(以鸢尾花分类为例)
Feb 24 Python
Python如何爬取b站热门视频并导入Excel
Aug 10 Python
利用python爬取有道词典的方法
Dec 08 Python
python gui开发——制作抖音无水印视频下载工具(附源码)
Feb 07 Python
Python数据可视化之Seaborn的安装及使用
Apr 19 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安装扩展mysqli的实现步骤及报错解决办法
2017/09/23 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
总结AJAX相关JS代码片段和浏览器模型
2007/08/15 Javascript
JS input 数字验证代码
2009/07/30 Javascript
jquery 防止表单重复提交代码
2010/01/21 Javascript
JavaScript高级程序设计(第3版)学习笔记8 js函数(中)
2012/10/11 Javascript
jquery 选取方法都有哪些
2014/05/18 Javascript
jQuery老黄历完整实现方法
2015/01/16 Javascript
用canvas 实现个图片三角化(LOW POLY)效果
2016/02/18 Javascript
EXT中单击button按钮grid添加一行(光标位置可设置)的实例代码
2016/06/02 Javascript
AngularJS $http模块POST请求实现
2017/04/08 Javascript
JS匹配日期和时间的正则表达式示例
2017/05/12 Javascript
微信小程序实现移动端滑动分页效果(ajax)
2017/06/13 Javascript
实例学习JavaScript读取和写入cookie
2018/01/29 Javascript
Vue无限滑动周选择日期的组件的示例代码
2018/07/18 Javascript
vue项目开发中setTimeout等定时器的管理问题
2018/09/13 Javascript
[59:30]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
python实现将html表格转换成CSV文件的方法
2015/06/28 Python
Python爬虫利用cookie实现模拟登陆实例详解
2017/01/12 Python
Django为窗体加上防机器人的验证码功能过程解析
2019/08/14 Python
Python django框架输入汉字,数字,字符生成二维码实现详解
2019/09/24 Python
关于pycharm中pip版本10.0无法使用的解决办法
2019/10/10 Python
使用Python的datetime库处理时间(RPA流程)
2019/11/24 Python
python实现飞机大战游戏(pygame版)
2020/10/26 Python
Python 使用office365邮箱的示例
2020/10/29 Python
PyTorch中的拷贝与就地操作详解
2020/12/09 Python
加拿大约会网站:EliteSingles.ca
2018/01/12 全球购物
80年代复古T恤:TruffleShuffle
2018/07/02 全球购物
家电业务员岗位职责
2014/03/10 职场文书
大学生评语大全
2014/04/18 职场文书
技术经济专业求职信
2014/09/03 职场文书
2014年教师教学工作总结
2014/11/08 职场文书
2014年乡镇妇联工作总结
2014/12/02 职场文书
医院保洁员管理制度
2015/08/05 职场文书
2016年小学优秀班主任事迹材料
2016/02/29 职场文书
go开发alertmanger实现钉钉报警
2021/07/16 Golang