Python的听课笔记案例8--空气污染指数计算6.0
原创前几节谈到了网络爬虫,但分析数据的效率不高。
鉴于该网页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()


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




