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库urllib与urllib2主要区别分析
Jul 13 Python
在Python中操作字典之clear()方法的使用
May 21 Python
详解python中的文件与目录操作
Jul 11 Python
Python实现微信消息防撤回功能的实例代码
Apr 29 Python
python常用库之NumPy和sklearn入门
Jul 11 Python
django项目登录中使用图片验证码的实现方法
Aug 15 Python
PyCharm2019安装教程及其使用(图文教程)
Sep 29 Python
Python自动化完成tb喵币任务的操作方法
Oct 30 Python
Python线程threading模块用法详解
Feb 26 Python
jupyter notebook 调用环境中的Keras或者pytorch教程
Apr 14 Python
python中sys模块是做什么用的
Aug 16 Python
Python实现照片卡通化
Dec 06 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
咖啡的化学
2021/03/03 咖啡文化
php自定义函数实现二维数组按指定key排序的方法
2016/09/29 PHP
iis6手工创建网站后无法运行php脚本的解决方法
2017/06/08 PHP
jQuery 自定义函数写法分享
2012/03/30 Javascript
HTML长文本截取含有HTML代码同样适用的两种方法
2013/07/31 Javascript
JS控制日期显示的小例子
2013/11/23 Javascript
纯Javascript实现ping功能的方法
2015/03/20 Javascript
js中对函数设置默认参数值的3种方法
2015/10/23 Javascript
AngularJS利用Controller完成URL跳转
2016/08/09 Javascript
AngularJs expression详解及简单示例
2016/09/01 Javascript
微信小程序使用第三方库Underscore.js步骤详解
2016/09/27 Javascript
微信小程序开发之录音机 音频播放 动画实例 (真机可用)
2016/12/08 Javascript
Vue 2中ref属性的使用方法及注意事项
2017/06/12 Javascript
微信小程序实现多宫格抽奖活动
2020/04/15 Javascript
基于three.js编写的一个项目类示例代码
2018/01/05 Javascript
vue 父组件调用子组件方法及事件
2018/03/29 Javascript
JS/HTML5游戏常用算法之追踪算法实例详解
2018/12/12 Javascript
深入分析jQuery.one() 函数
2020/06/03 jQuery
使用python开发vim插件及心得分享
2014/11/04 Python
Windows和Linux下Python输出彩色文字的方法教程
2017/05/02 Python
详解python eval函数的妙用
2017/11/16 Python
Python中文件的读取和写入操作
2018/04/27 Python
Python简单实现网页内容抓取功能示例
2018/06/07 Python
python实现简单多人聊天室
2018/12/11 Python
python入门之井字棋小游戏
2020/03/05 Python
pygame用blit()实现动画效果的示例代码
2020/05/28 Python
基于Python爬取51cto博客页面信息过程解析
2020/08/25 Python
Python+kivy BoxLayout布局示例代码详解
2020/12/28 Python
西班牙香水和化妆品连锁店:Druni
2019/05/05 全球购物
计算机专业毕业生推荐信
2013/11/25 职场文书
影视制作岗位职责
2013/12/04 职场文书
企业优秀员工事迹材料
2014/05/28 职场文书
学生夜不归宿检讨书
2014/09/23 职场文书
学生检讨书怎么写?
2014/10/10 职场文书
志愿者事迹材料
2014/12/26 职场文书
国家助学金受助感言
2015/08/01 职场文书