Webscraping таблицы данных с использованием python - PullRequest
2 голосов
/ 04 мая 2020

Цель: Используя Python, я хочу получить среднее значение за последние 30 дней из "https://www.xe.com/currencyconverter/convert/?Amount=1&From=USD&To=INR" (элемент HTML, проверенный в браузере Chrome, равен "76.2664").

Отказ от ответственности: я собираю значение только для образовательных целей

Я отчетливо вижу вышеуказанный элемент в браузере Chrome, но не могу прочитать с помощью движка рендеринга BeautifulSoup.

Ниже приведен код, который я создал до сих пор:

import requests, bs4
res = requests.get('https://www.xe.com/currencyconverter/convert/?Amount=1&From=USD&To=INR')
res.raise_for_status()
exampleSoup = bs4.BeautifulSoup(res.text,'html.parser')
elems = exampleSoup.select('div')
print(elems)

Вопросы: 1. Почему элементы видны в Chrome, а не в HTML Исходный код? 2. Использую ли я правильный движок рендеринга (beautifulsoup) для своих целей? 3. Какой селектор CSS я должен использовать, чтобы получить среднее значение за последние 30 дней?

1 Ответ

0 голосов
/ 04 мая 2020

Вы можете видеть на вкладке сети, что он приходит с этой конечной точки

https://www.xe.com/api/stats.php?fromCurrency=USD&toCurrency=INR

в

json['payload']['Last_30_Days']['average']

В нем прямо говорится, что автоматическое извлечение противоречит условиям использования.

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