Webscraping: таблица не входит в BeautifulSoup Page - PullRequest
1 голос
/ 08 марта 2019

Я пытаюсь очистить таблицу информации о компании из таблицы на этой странице: https://tools.ceres.org/resources/tools/sec-sustainability-disclosure/

Я вижу содержимое таблицы при использовании инспектора элементов chrome dev, но когда я запрашиваю страницу в моем скрипте, содержимое таблицы исчезает ... просто без содержимого.

Есть идеи, как мне получить этот сладкий, сладкий контент?

Спасибо

Код ниже:

import requests
from bs4 import BeautifulSoup
response = requests.get("https://tools.ceres.org/resources/tools/sec-sustainability-disclosure/")
page = BeautifulSoup(response.text, "html.parser")
page

Ответы [ 2 ]

0 голосов
/ 08 марта 2019

Вы можете найти API на вкладке сетевого трафика: он вызывает

https://tools.ceres.org/resources/tools/sec-sustainability-disclosure/@@api-disclosure?isabstract=0&companyName=&ticker=&year=2018&analysis=1&index=&sic=&keywords=

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

https://tools.ceres.org/resources/tools/sec-sustainability-disclosure/@@api-disclosure?isabstract=0&year=2018&analysis=1

должен дать вам тот же результаткак запрос выше.

0 голосов
/ 08 марта 2019

Основываясь на сетевом трафике с использованием инструмента dev, контент не находится непосредственно в html, а вызывается динамически из скрипта ApiService.js. Я предлагаю использовать Selenium для извлечения контента после полной загрузки страницы (например, до тех пор, пока загрузочный элемент не исчезнет).

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