Python的听课笔记案例8--空气污染指数计算6.0

原创
小哥 3年前 (2022-10-29) 阅读数 9 #大杂烩

前几节谈到了网络爬虫,但分析数据的效率不高。

鉴于该网页HTML树形结构,我们可以引入一个新的库。--BeautifulSoup4用于解析HTML或XML。

如何安装第三方库:BeautifulSoup4?(我将添加一篇关于如何安装第三方库的文章,在这一节中不会有太多内容。)
1,默认安装位置为Anaconda中
2,如果没有安装,可以在命令窗口中安装。cmd在中执行以下命令:
pip install beautifulsoup4
import bs4

使用BeautifulSoup图书馆的阶梯:
1、创建BeautifulSoup对象
2,查询节点
find,查找满足条件的第一个节点。
find_all 查找符合条件的所有节点
可以按节点类型、属性或内容进行访问。
比如有这样一段话,HTML:a_value
按类型查找节点:
bs.find_all(a)
按属性查找节点:
bs.find_all(a, href=abcd)
bs.find_all(a, class_=efgh)
注意:是class_   (因为:class是关键字)
或者:bs.find_all(a, {class: efgh)
按内容查找节点:
bs.find_all(a, href=abcd, string=a_value)

您可以查看该网页HTML代码(选中的部分是要抓取的内容),点击鼠标右键--查看Web源代码:

然后开始收购一座城市的所有AQI指标值:

"""
    作者:lanxingbudui
    日期:2020-02-25
    功能:AQI计算
    版本:6.0
"""

import requests
from bs4 import BeautifulSoup

def get_city_aqi(city_pinyin):
    """
        得到一座城市的全部。AQI指标
    """
    url = http://pm25.in/ + city_pinyin
    r = requests.get(url, timeout=30)  #链接Web请求
    print(r.status_code)  #打印返回结果,200成功 400失败
    soup = BeautifulSoup(r.text, lxml)  #创建BeautifulSoup对象
    div_list = soup.find_all(div, {class: span1}) #查找所有spen1属性的节点
    # 或者 = soup.find_all(div, class_ = spanl)  # 不建议这样做,因为class是一个关键字,有时容易忘记下划线。

    city_aqi = []
    for i in range(8):
        div_content = div_list[i]
        caption = div_content.find(div, {class: caption}).text.strip()        
        value = div_content.find(div, {class: value}).text.strip()
        # .text是为了得到财产的价值,和。.strip()从上一步中删除 text 字符串末尾的空格或换行符。
        city_aqi.append((caption, value))
    return city_aqi

def main():
    """
        主函数
    """
    city_pinyin = input(请输入城市拼音:)
    city_aqi = get_city_aqi(city_pinyin)
    print(city_aqi)

if __name__ == __main__:
    main()

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除