BeautifulSoup: Почему он не находит все фреймы? - PullRequest
0 голосов
/ 17 мая 2019

Я довольно новичок в BeautifulSoup и пытаюсь выяснить, почему он не работает так, как ожидалось.

from urllib.request import urlopen
from bs4 import BeautifulSoup
html = urlopen("https://www.globes.co.il/news/article.aspx?did=1001285710")
bsObj = BeautifulSoup(html.read(), features="html.parser")
print(bsObj.find_all('iframe'))

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

document.getElementsByTagName("iframe")

в dev-tools, я получаю список из 14 элементов.

Не могли бы вы мне помочь?

1 Ответ

1 голос
/ 17 мая 2019

Это потому, что этот сайт динамически добавляет больше фреймов после загрузки страницы. Кроме того, содержимое iframe загружается браузером динамически и также не будет загружаться через urlopen. Возможно, вам придется использовать Selenium, чтобы разрешить JavaScript загружать дополнительные iframe, а затем, возможно, придется искать iframe и загружать контент через src url.

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