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 pass 语句使用示例
Mar 11 Python
浅谈python中的getattr函数 hasattr函数
Jun 14 Python
Python微信公众号开发平台
Jan 25 Python
Python SVM(支持向量机)实现方法完整示例
Jun 19 Python
tensorflow实现图像的裁剪和填充方法
Jul 27 Python
修改python plot折线图的坐标轴刻度方法
Dec 13 Python
python爬虫超时的处理的实例
Dec 19 Python
使用pyecharts生成Echarts网页的实例
Aug 12 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
Jan 09 Python
NumPy统计函数的实现方法
Jan 21 Python
python文本处理的方案(结巴分词并去除符号)
May 26 Python
Python 处理表格进行成绩排序的操作代码
Jul 26 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
coreseek 搜索英文的问题详解
2013/06/08 PHP
win7计划任务定时执行PHP脚本设置图解
2014/05/09 PHP
[原创]php简单防盗链验证实现方法
2016/07/09 PHP
ThinkPHP3.1.x修改成功与失败跳转页面的方法
2017/09/29 PHP
javascript 模拟点击广告
2010/01/02 Javascript
用于节点操作的API,颠覆原生操作HTML DOM节点的API
2010/12/11 Javascript
用nodejs写的一个简单项目打包工具
2013/05/11 NodeJs
实现只能输入数字的input不用replace方法
2013/09/12 Javascript
原生Ajax 和jQuery Ajax的区别示例分析
2014/12/17 Javascript
JavaScript实现Iterator模式实例分析
2015/06/09 Javascript
js密码强度校验
2015/11/10 Javascript
JS中mouseover和mouseout多次触发问题如何解决
2016/06/06 Javascript
原生js仿jquery一些常用方法(必看篇)
2016/09/20 Javascript
Angular ng-repeat遍历渲染完页面后执行其他操作详细介绍
2016/12/13 Javascript
React 组件转 Vue 组件的命令写法
2018/02/28 Javascript
React 组件间的通信示例
2018/06/14 Javascript
Layui 设置select下拉框自动选中某项的方法
2018/08/14 Javascript
Vue实现一个无限加载列表功能
2018/11/13 Javascript
JS异步处理的进化史深入讲解
2019/08/25 Javascript
JS highcharts动态柱状图原理及实现
2020/10/16 Javascript
Vue实现小购物车功能
2020/12/21 Vue.js
[56:00]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第二场
2018/04/10 DOTA
Python中list列表的一些进阶使用方法介绍
2015/08/15 Python
详解python时间模块中的datetime模块
2016/01/13 Python
python re的findall和finditer的区别详解
2020/11/15 Python
css3加js做一个简单的3D行星运转效果实例代码
2017/01/18 HTML / CSS
农业大学毕业生的个人自我评价
2013/10/11 职场文书
农民入党思想汇报
2014/01/03 职场文书
工作迟到检讨书
2014/02/21 职场文书
党性分析自查总结
2014/10/14 职场文书
党员批评与自我批评发言稿
2014/10/14 职场文书
化验员岗位职责
2015/02/14 职场文书
2015年银行客户经理工作总结
2015/04/01 职场文书
会议简讯范文
2015/07/20 职场文书
Python 线程池模块之多线程操作代码
2021/05/20 Python
你需要掌握的20个Python常用技巧
2022/02/28 Python