Мне нужно извлечь данные из диаграммы развития активов, представленной по этой ссылке (пример): https://investidor10.com.br/carteira/572422/ (изображение диаграммы прилагается).
Мне нужны данные для всех столбцов, присутствующих на диаграмме: стоимость активов, прирост капитала и сумма инвестиций. Я пытался извлечь данные с помощью Selenium + BeautifulSoup, но не смог, потому что данные отсутствуют в HTML и появляются только при нажатии на полосу диаграммы. Я искал в Интернете, но не нашел ничего, что помогло бы мне решить эту проблему.
Таким образом, кто-нибудь знает, как я могу извлечь данные, которые появляются на диаграмме развития активов?
Не обязательно использовать Selenium + BeautifulSoup, но он должен быть на Python.
Диаграмма, из которой я хочу извлечь данные:
Я пробовал использовать Selenium + BeautifulSoup, но не знаю, как извлечь данные, поскольку они динамические и появляются, когда вы выбираете полосу на графике.
Нет необходимости использовать selenium
или beautifulsoup
, на мой взгляд, самый простой/прямой способ — использовать API, через который извлекаются данные.
Как узнать, загружается/отрисовывается ли контент в этом случае динамически?
Первый индикатор: откройте веб-сайт как человек в браузере и обратите внимание, что для этой области появляется анимация загрузки / задержка. Второй показатель: контент не включен в статический ответ на запрос. Теперь вы можете использовать инструменты разработчика браузера, чтобы просмотреть вкладку «Запросы XHR» и узнать, какие данные из каких ресурсов загружаются. -> http://developer.chrome.com/docs/devtools/network
Если есть API, используйте его, иначе используйте selenium
.
import requests
requests.get(
'https://investidor10.com.br/api/carteiras/charts/evolucao-patrimonio/572422/12/all',
headers = {'user-agent':'some_valid_agent'}
).json()
[{"month":"05/23","date":"05/23","sum_applied":3599.2496,"sum_equity":3794.7088999999996,"sum_flow":5198.9427,"profitability":0},{"month":"06/23","date":"06/23","sum_applied":4199.3396,"sum_equity":4621.3407,"sum_flow":6038.5586,"profitability":12.73},{"month":"07/23","date":"07/23","sum_applied":5163.1996,"sum_equity":5585.579299999999,"sum_flow":7031.7742,"profitability":10.32},{"month":"08/23","date":"08/23","sum_applied":7282.6224,"sum_equity":7601.287600000001,"sum_flow":9065.3382,"profitability":5.83},{"month":"09/23","date":"09/23","sum_applied":8304.412400000001,"sum_equity":8625.8636,"sum_flow":10053.2882,"profitability":5.14},{"month":"10/23","date":"10/23","sum_applied":8845.77940001,"sum_equity":8980.3758,"sum_flow":10872.9838,"profitability":2.68},{"month":"11/23","date":"11/23","sum_applied":10658.68980001,"sum_equity":11171.1518,"sum_flow":13193.6327,"profitability":5.8},{"month":"12/23","date":"12/23","sum_applied":12046.64240001,"sum_equity":13070.843799999999,"sum_flow":15134.4752,"profitability":9.41},{"month":"01/24","date":"01/24","sum_applied":13077.23640001,"sum_equity":13844.4296,"sum_flow":15645.7756,"profitability":6.68},{"month":"02/24","date":"02/24","sum_applied":14686.01640001,"sum_equity":15452.7688,"sum_flow":17294.9096,"profitability":5.94},{"month":"03/24","date":"03/24","sum_applied":16045.49640001,"sum_equity":16943.5274,"sum_flow":18794.0035,"profitability":6.26},{"month":"04/24","date":"04/24","sum_applied":17719.15640001,"sum_equity":17760.8627,"sum_flow":20053.741,"profitability":0.8},{"month":"05/24","date":"05/24","sum_applied":21831.56640001,"sum_equity":22332.2705,"sum_flow":24650.6796,"profitability":2.76}]
Вау, это именно то, что мне нужно. Я пытался найти эту конечную точку, но не смог найти ее, проверив данные веб-сайта. Можете ли вы рассказать мне, как вы пришли к этой конечной точке «investidor10.com.br/api/carteiras/charts/evolucao-patrimonio/… »?
Кроме того, просмотрите тур , прочтите Как задавать - Для будущих вопросов укажите написанный вами код и застрял как минимальный воспроизводимый пример, чтобы каждый мог воспроизвести вашу проблему и работать над ней. Спасибо