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多进程同步Lock、Semaphore、Event实例
Nov 21 Python
Python内建数据结构详解
Feb 03 Python
python增加矩阵维度的实例讲解
Apr 04 Python
python中字符串的操作方法大全
Jun 03 Python
解决Django layui {{}}冲突的问题
Aug 29 Python
python绘制封闭多边形教程
Feb 18 Python
python去除删除数据中\u0000\u0001等unicode字符串的代码
Mar 06 Python
python利用Excel读取和存储测试数据完成接口自动化教程
Apr 30 Python
PyQt5-QDateEdit的简单使用操作
Jul 12 Python
Python 保存加载mat格式文件的示例代码
Aug 04 Python
python中的split、rsplit、splitlines用法说明
Oct 23 Python
Python之matplotlib绘制折线图
Apr 13 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 变量定义方法
2009/06/14 PHP
关于php循环跳出的问题
2013/07/01 PHP
ThinkPHP3.1之D方法实例详解
2014/06/20 PHP
PHP使用redis实现统计缓存mysql压力的方法
2015/11/14 PHP
PHP自定义函数格式化json数据示例
2016/09/14 PHP
php中文字符串截取多种方法汇总
2016/10/06 PHP
PHP微信网页授权的配置文件操作分析
2019/05/29 PHP
javascript 遍历验证所有文本框的值
2009/08/27 Javascript
jQuery替换字符串(实例代码)
2013/11/13 Javascript
使用phantomjs进行网页抓取的实现代码
2014/09/29 Javascript
Javascript前端UI框架Kit使用指南之kitjs的对话框组件
2014/11/28 Javascript
深入理解JavaScript编程中的原型概念
2015/06/25 Javascript
jQuery实现html元素拖拽
2015/07/21 Javascript
解决JS请求服务器gbk文件乱码的问题
2015/10/16 Javascript
jQuery实现下拉加载功能实例代码
2016/04/01 Javascript
Vue.js 2.0 和 React、Augular等其他前端框架大比拼
2016/10/08 Javascript
浅谈js函数中的实例对象、类对象、局部变量(局部函数)
2016/11/20 Javascript
Angularjs自定义指令Directive详解
2017/05/27 Javascript
原生js实现获取form表单数据代码实例
2019/03/27 Javascript
vue路由对不同界面进行传参及跳转的总结
2019/04/20 Javascript
使用Vue.js中的过滤器实现幂方求值的方法
2019/08/27 Javascript
[47:42]完美世界DOTA2联赛PWL S2 GXR vs Ink 第一场 11.19
2020/11/20 DOTA
Python中对元组和列表按条件进行排序的方法示例
2015/11/10 Python
Python实现base64编码的图片保存到本地功能示例
2018/06/22 Python
Python简单读写Xls格式文档的方法示例
2018/08/17 Python
在SQLite-Python中实现返回、查询中文字段的方法
2019/07/17 Python
Windows10+anacond+GPU+pytorch安装详细过程
2020/03/24 Python
Python中zipfile压缩文件模块的基本使用教程
2020/06/14 Python
Python爬虫之Selenium设置元素等待的方法
2020/12/04 Python
某公司面试题
2012/03/05 面试题
酒店门卫岗位职责
2013/12/29 职场文书
医院领导班子查摆问题对照检查材料思想汇报
2014/10/08 职场文书
教师三严三实心得体会
2014/10/11 职场文书
银行优秀员工推荐信
2015/03/24 职场文书
小学大队干部竞选稿
2015/11/20 职场文书
python神经网络Xception模型
2022/05/06 Python