gpt4 book ai didi

python - 如何阅读网站内容?

转载 作者:太空宇宙 更新时间:2023-11-03 14:12:40 24 4
gpt4 key购买 nike

我是使用 python 2.7 的网络爬虫新手。

1。背景

现在,我想从AQICN.org中收集有用的数据这是一个很棒的网站,提供全世界的空气质量数据。

我想用 python 每小时获取所有中国站点的数据。但我现在被困住了。

2。我的烦恼

以这个网站(http://aqicn.org/city/shenyang/usconsulate/)为例。

此页面提供美国驻华领事馆的空气污染和气象参数。使用这样的代码,我无法获得有用的信息。

import urllib
from bs4 import BeautifulSoup
import re
import json

html_aqi =
urllib.urlopen("http://aqicn.org/city/shenyang/usconsulate/json").read().decode('utf-8')
soup= BeautifulSoup(html_aqi)
l = soup.p.get_text()
aqi= json.loads(l)

结果显示如下:

> ValueError: No JSON object could be decoded    

因此,我将 html_aqi 更改为这种格式(引用某人的工作):

http://aqicn.org/aqicn/json/android/shenyang/usconsulate/json

代码运行良好。

3。我的目标。

格式 1: ( http://aqicn.org/city/shenyang/usconsulate/json)
格式 2: ( http://aqicn.org/aqicn/json/android/shenyang/usconsulate/json)

一般来说,我可以处理格式 2 。但是,我收集了中国所有站点的网站,格式为 1。那么,任何人都可以为我提供一些帮助来应对格式 1 吗?多谢。

更新

格式一很难转化为格式二(需要考虑很多条件。)

使用这样的代码无法轻松完成:

city_name = url_format1.split("/")[5]
site_name = url_format1.split("/")[6]
url_format2 = "http://aqicn.org/aqicn/json/android/"+ city_name + "/"+ site_name

### --- Reason Why it's hard in practice
1559 sites need to be care with, and these sites differ by their location.
Some are in city, some are in county. Their url are not the same pattern.
for example:
Type1 --> http://aqicn.org/city/hebi/json
Type2 --> http://aqicn.org/city/jiangsu/huaian/json
Type3 --> http://aqicn.org/city/china/xinzhou/jiyin/json

最佳答案

如果您对空气质量指数感兴趣,请找到具有 aqivalue 类的 div:

>>> import urllib
>>> from bs4 import BeautifulSoup
>>>
>>> url = "http://aqicn.org/city/shenyang/usconsulate/json"
>>> soup = BeautifulSoup(urllib.urlopen(url), "html.parser")
>>> soup.find("div", class_="aqivalue").get_text()
u'171'

关于python - 如何阅读网站内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36102858/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com