我尝试使用beautifulsoup从Skopeo中获取温度值。 但是当我打印出汤的全文时,它只会显示一个iframe:
<iframe frameborder="0" height="100%" src="https://www.weatherlink.com/embeddablePage/show/c7ea9161378346e18d2e4c0ea056c55b/summary" width="100%"></iframe>
因此,我尝试使用iframe中显示的src地址: 但是它只显示一些其他代码,而没有我可以用漂亮的汤选择的任何代码:( 到目前为止,这是我的代码:
import json
from urllib.request import urlopen
from bs4 import BeautifulSoup
url= 'http://www.nordhessen-wetter.de'
# url = 'https://www.weatherlink.com/embeddablePage/show/c7ea9161378346e18d2e4c0ea056c55b/summary'
u = urlopen(url)
soup = BeautifulSoup(u, 'html.parser')
seitentxt = str(soup)
print(seitentxt)
不可能从此代码中获取温度值吗?
感谢您的帮助! 马吕斯
答案 0 :(得分:0)
使用页面用于获取该内容的相同URL。您可以通过开发人员工具在“网络”标签中找到它。
import requests
url = 'https://www.weatherlink.com/embeddablePage/summaryData/db22c5a778f14c5da538dc6f3b3ddc0d?ts=1555852879023'
r = requests.get(url).json()
units = r['currConditionValues'][0]['unitLabel']
current = str(r['currConditionValues'][0]['value']) + units
high = str(r['highLowValues'][3]['value']) + units
low = str(r['highLowValues'][4]['value']) + units
print(current, high, low)
如果要使用逗号分隔符,请使用convertedValue
而不是value
临时时间:
high_time = str(r['highLowValues'][17]['value'])
print(high_time)
low_time = str(r['highLowValues'][18]['value'])
print(low_time)