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实现telnet客户端的方法
Apr 15 Python
python实现发送和获取手机短信验证码
Jan 15 Python
numpy自动生成数组详解
Dec 15 Python
如何用Python合并lmdb文件
Jul 02 Python
tensorflow实现简单逻辑回归
Sep 07 Python
python用for循环求和的方法总结
Jul 08 Python
Django使用Channels实现WebSocket的方法
Jul 28 Python
Python 实现遥感影像波段组合的示例代码
Aug 04 Python
django项目中使用手机号登录的实例代码
Aug 15 Python
PyCharm最新激活码(2020/10/27全网最新)
Oct 27 Python
Python 使用office365邮箱的示例
Oct 29 Python
关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题
Nov 28 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 数组遍历的差异(array_diff 的实现)
2008/03/23 PHP
PHP缓存技术的多种方法小结
2012/08/14 PHP
ThinkPHP函数详解之M方法和R方法
2015/09/10 PHP
Thinkphp和onethink实现微信支付插件
2016/04/13 PHP
session 加入redis的实现代码
2016/07/15 PHP
php实现文章评论系统
2019/02/18 PHP
PHP强制转化的形式整理
2020/05/22 PHP
html数组字符串拼接的最快方法
2009/09/16 Javascript
a标签的href与onclick事件的区别详解
2014/11/12 Javascript
javascript判断数组内是否重复的方法
2015/04/21 Javascript
微信小程序教程系列之设置标题栏和导航栏(7)
2020/06/29 Javascript
vue 中swiper的使用教程
2018/05/22 Javascript
使用Vue-cli 3.0搭建Vue项目的方法
2018/06/07 Javascript
使用p5.js临摹动态图片
2019/11/04 Javascript
解决VUE项目localhost端口服务器拒绝连接,只能用127.0.0.1的问题
2020/08/14 Javascript
Vue实现多页签组件
2021/01/14 Vue.js
如何利用Fabric自动化你的任务
2016/10/20 Python
Python多维/嵌套字典数据无限遍历的实现
2016/11/04 Python
用pandas中的DataFrame时选取行或列的方法
2018/07/11 Python
Python selenium根据class定位页面元素的方法
2019/02/26 Python
python opencv实现图像边缘检测
2019/04/29 Python
python中的单引号双引号区别知识点总结
2019/06/23 Python
如何基于python实现归一化处理
2020/01/20 Python
VSCode配合pipenv搞定虚拟环境的实现方法
2020/05/17 Python
Python使用shutil模块实现文件拷贝
2020/07/31 Python
K近邻法(KNN)相关知识总结以及如何用python实现
2021/01/28 Python
html5使用Drag事件编辑器拖拽上传图片的示例代码
2017/08/22 HTML / CSS
酒吧总经理岗位职责
2013/12/10 职场文书
大课间活动制度
2014/01/18 职场文书
中青班党性分析材料
2014/02/16 职场文书
群众路线教育党课主持词
2014/04/01 职场文书
团日活动总结模板
2014/06/25 职场文书
环保公益策划方案
2014/08/15 职场文书
学生吸烟检讨书
2014/09/14 职场文书
大学学生会主席竞选稿
2015/11/19 职场文书
教你利用Selenium+python自动化来解决pip使用异常
2021/05/20 Python