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 相关文章推荐
用Pygal绘制直方图代码示例
Dec 07 Python
python SSH模块登录,远程机执行shell命令实例解析
Jan 12 Python
Python 通配符删除文件的实例
Apr 24 Python
Python+selenium 获取浏览器窗口坐标、句柄的方法
Oct 14 Python
Python远程视频监控程序的实例代码
May 05 Python
django的分页器Paginator 从django中导入类
Jul 25 Python
Python迭代器模块itertools使用原理解析
Dec 11 Python
python pymysql链接数据库查询结果转为Dataframe实例
Jun 05 Python
基于python实现操作git过程代码解析
Jul 27 Python
细说NumPy数组的四种乘法的使用
Dec 18 Python
解决import tensorflow导致jupyter内核死亡的问题
Feb 06 Python
python树莓派通过队列实现进程交互的程序分析
Jul 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连接oracle数据库的核心步骤
2016/05/26 PHP
简单JS代码压缩器
2006/10/12 Javascript
WEB页子窗口(showModalDialog和showModelessDialog)使用说明
2009/10/25 Javascript
JS 自定义函数缺省值的设置方法
2010/05/05 Javascript
js获取location.href的参数实例代码
2013/08/02 Javascript
js获取URL的参数的方法(getQueryString)示例
2013/09/29 Javascript
javascript实用小函数使用介绍
2013/11/11 Javascript
javascript 常见功能汇总
2015/06/11 Javascript
莱鸟介绍javascript onclick事件
2016/01/06 Javascript
jQuery通过ajax请求php遍历json数组到table中的代码(推荐)
2016/06/12 Javascript
BootStrap中的表单大全
2016/09/07 Javascript
jquery判断页面网址是否有效的两种方法
2016/12/11 Javascript
常用的js方法合集
2017/03/10 Javascript
深入学习 JavaScript中的函数调用
2017/03/23 Javascript
JS实现隔行换色的表格排序
2017/03/27 Javascript
nodejs个人博客开发第五步 分配数据
2017/04/12 NodeJs
JS SetInterval 代码实现页面轮询
2017/08/11 Javascript
vue实现文章内容过长点击阅读全文功能的实例
2017/12/28 Javascript
jsonp实现百度下拉框功能的方法分析
2019/05/10 Javascript
Vue项目移动端滚动穿透问题的实现
2020/05/19 Javascript
[54:19]完美世界DOTA2联赛PWL S2 Magma vs PXG 第二场 11.28
2020/12/01 DOTA
Python使用Mechanize模块编写爬虫的要点解析
2016/03/31 Python
Python numpy中矩阵的基本用法汇总
2019/02/12 Python
Django实现列表页商品数据返回教程
2020/04/03 Python
Pytorch 使用opnecv读入图像由HWC转为BCHW格式方式
2020/06/02 Python
Python3爬虫关于识别检验滑动验证码的实例
2020/07/30 Python
python解包概念及实例
2021/02/17 Python
matplotlib bar()实现百分比堆积柱状图
2021/02/24 Python
使用tkinter实现三子棋游戏
2021/02/25 Python
html5模拟平抛运动(模拟小球平抛运动过程)
2013/07/25 HTML / CSS
Canvas环形饼图与手势控制的实现代码
2019/11/08 HTML / CSS
不假外出检讨书
2014/01/27 职场文书
团组织推优材料
2014/12/29 职场文书
Python获取江苏疫情实时数据及爬虫分析
2021/08/02 Python
解决Windows Server2012 R2 无法安装 .NET Framework 3.5
2022/04/29 Servers
使用CSS实现黑白格背景效果
2022/06/01 HTML / CSS