我已经能够成功获取所需的标签。但是,当我在浏览器上通过检阅查看网站代码时,可以看到有一个数据值。当我在其中插入网站HTML代码时,数据值不存在。
import requests
from bs4 import BeautifulSoup
page = requests.get("https://www.theweathernetwork.com/ca/weather/ontario/ottawa")
if page.status_code == 200:
print("Page downloaded")
else:
print("Page download failed")
soup = BeautifulSoup(page.content, 'html.parser')
# Locate current temperature
test = soup.find("span", {"class":"temp"})
print(test)
我要返回的结果集<span class="temp"></span>
是我使用了错误的函数来返回我的结果吗?我也尝试过使用该soup.select()
方法。
您一无所获,因为这些值是由动态呈现的JS
。但是,您可以向其API请求以获取所有数据。
import requests
data = requests.get("https://www.theweathernetwork.com/api/data/caon0512/cm/ci?ts=1652").json()
print(data['obs']['tc'])
这样可以在C:中获取渥太华当前的可观察温度11
。
要获取更多数据:
import requests
data = requests.get("https://www.theweathernetwork.com/api/data/caon0512/cm/ci?ts=1652").json()
print(data['obs']['updatetime'])
sunrise = data['obs']['sunrise_time']
temp_c = data['obs']['tc']
wind, wind_unit = data['obs']['w'], data['obs']['wu']
humidity = data['obs']['h']
visibility, visibility_unit = data['obs']['v'], data['obs']['vu']
air_quality = data['obs']['aq_index']
print(f"Sunrise: {sunrise} | Current temp: {temp_c} C | Wind: {wind} {wind_unit}")
print(f"Humidity: {humidity}% | Visibility: {visibility} {visibility_unit}")
print(f"Air quality index: {air_quality}")
这使您:
Sun Oct 18 1:15 PM
Sunrise: 7:23 AM | Current temp: 13 C | Wind: 17 km/h
Humidity: 47% | Visibility: 24 km
Air quality index: 2
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句