BeautifulSoup не читает «полный» HTML, полученный по запросам - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь очистить URL-адреса с веб-сайта, представленного в виде HTML, с помощью библиотеки BeautifulSoup и запросов.Я запускаю их обоих на Python 3.5.Кажется, я успешно получаю HTML из запросов, потому что когда я отображаю r.content, отображается полный HTML-код веб-сайта, который я пытаюсь очистить.Однако когда я передаю это в BeautifulSoup, BeautifulSoup удаляет большую часть HTML, включая URL, который я пытаюсь очистить.

from bs4 import BeautifulSoup
import requests

page = requests.get('www.example.com')
soup = BeautifulSoup(page.content, 'html.parser')

print(soup.findAll('div'))

Я уже пытался использовать другие парсеры, такие как html5lib, lxml, уже безуспешно.

Однако в выводе отображаются не все элементы div, которые на самом деле присутствуют в HTML-коде веб-сайта.

Это ссылка на веб-сайт.

Я хочу очистить URL от 'h1.post-title'.

1 Ответ

0 голосов
/ 07 февраля 2019

Это потому, что страница, которую вы просматриваете, динамическая .Это означает, что его содержимое генерируется с помощью JavaScript, и для его полной визуализации требуется несколько раз (изначально нет статического представления).

Вы должны использовать что-то вроде Selenium или Puppeteer чтобы загрузить страницу, подождите, пока она полностью не отобразится, затем очистите содержимое, которое необходимо извлечь.

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