Python实现抓取城市的PM2.5浓度和排名
admin
2023-07-31 02:16:57
0

主机环境:(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()

以上就是本文所述的全部内容了,希望大家能够喜欢。

相关内容

热门资讯

500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
python查找阿姆斯特朗数 题目解释 如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。 例如1^3 + 5...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...