Получить значение из iframe с Beautifulsoup - PullRequest
1 голос
/ 21 апреля 2019

Я пытаюсь получить значение temparature из этого сайта с BeautifulSoup.Но когда я распечатываю весь текст супа, он показывает мне только iframe:

<iframe frameborder="0" height="100%" src="https://www.weatherlink.com/embeddablePage/show/c7ea9161378346e18d2e4c0ea056c55b/summary" width="100%"></iframe>

Поэтому я пытаюсь использовать адрес src, который показан в iframe: Но он отображает только другой код безлюбой код, который я могу выбрать с красивым супом :( Пока это мой код:

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)

Разве невозможно получить значение температуры из этого кода?

Спасибо заВаша помощь! Мариус

1 Ответ

0 голосов
/ 21 апреля 2019

Используйте тот же 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...