Может ли кто-нибудь помочь мне получить живые данные с сайта Suncal c .org? - PullRequest
0 голосов
/ 29 февраля 2020

Я использовал Beautifulsoup для получения данных с этого сайта. Мой код:

import bs4
import requests
from bs4 import BeautifulSoup

r = requests.get('https://www.suncalc.org/#/12.98,80.188,10/2020.02.21/15:51/1/3')
soup = BeautifulSoup(r.content,'html.parser')
week = soup.find(id='clickSunrise')

print(week)

Результат:

<span class="sunriseX Bold sunrise-time" id="clickSunrise" style="white-space:nowrap;">...</span>

Эти три точки на самом деле были числами, мне нужны эти цифры.

Ответы [ 2 ]

1 голос
/ 29 февраля 2020

Здравствуйте. Я проверил ваш код и похоже, что веб-сайт не загружает данные, пока браузер не запросит информацию. Поскольку вы используете модули запросов, браузер отсутствует.

Для получения этих данных вам необходимо использовать эмулятор браузера, например модуль селена. Этот модуль откроет для вас браузер, и вы можете запрограммировать его для перехода на этот веб-сайт, дождаться, пока все загрузится, и получить информацию для вас.

Шаги:

1-Установить селен

2-Загрузите хром-драйвер и поместите его куда-нибудь (возможно, в ваш проект)

https://chromedriver.chromium.org/downloads

3-Learn селен (это удивительный инструмент для автоматизации навигации по сети). Это непроверенный пример, чтобы вы могли получить представление (может сработать для вас, но не может)

import time
from selenium import webdriver

driver = webdriver.Chrome('/path/to/chromedriver')  # Change this to your chromedriver path.

driver.get('https://www.suncalc.org/#/12.98,80.188,10/2020.02.21/15:51/1/3');
time.sleep(5) # Let the user actually see something!
clickSunrise = driver.find_element_by_id('clickSunrise')
print(clickSunrise.text)

Надеюсь, это поможет!

0 голосов
/ 01 марта 2020

из селена импорт веб-драйвера

из selenium.webdriver. chrome .webdriver импорт WebDriver

из selenium.webdriver.common.keys ключи импорта

время импорта

драйвер: WebDriver = webdriver. Chrome (executetable_path = "D: \ download \ chromedriver_win32 \ chromedriver.exe")

driver.get ("https://suncalc.org/# / 12.05, 80.04,17 / null / null / 324.0 / 2")

time.sleep (5)

высота = driver.find_element_by_id (" sunhoehe ")

time.sleep (5)

print (altitude.text)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...