Чтение данных из URL, где страница html не отображает их - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь использовать следующий код:

import sys
if __name__ == '__main__':
    link = "https://bibles.org/bible/555fef9a6cb31151-01/3JN.1"
    import requests
    from bs4 import BeautifulSoup

    s = requests.session()
    r = s.get(link)
    soup = BeautifulSoup(r.text, 'html.parser')
    print(soup.prettify())

Но я не могу увидеть содержимое веб-страницы. Как мне их извлечь?

1 Ответ

0 голосов
/ 05 февраля 2020

Вы можете очистить только то, что видите в исходном коде страницы (go до view-source:https://bibles.org/bible/555fef9a6cb31151-01/3JN.1), используя запросы + bs4.

Страница, которую вы пытаетесь очистить, представляет собой динамическое c веб-приложение, которое загружает текст впоследствии, используя JS + XHR. Это означает, что вам нужен браузер + селен [0], чтобы загрузить страницу и выполнить все, что нужно JS для загрузки содержимого. Когда содержимое страницы заполнено, вы можете получить фактический HTML и использовать bs4 для извлечения текста.

Итак, прочитайте, как использовать Selenium с python для очистки. Вам также понадобится использовать wait [1], чтобы дождаться нужной суммы, пока страница не достигнет желаемого состояния (текст добавлен на страницу).

...