Есть ли способ указать длину запроса методом post? - PullRequest
0 голосов
/ 21 октября 2019

Я очищаю таблицу экономического календаря от investing.com. Я использую Красивый суп и запрашивает библиотеки. Я делаю запрос методом post и не могу найти способ получить ответ с данными, содержащий более 200 строк из таблицы.

Если при обновлении фильтров таблицы вы посмотрите на сетевой трафик, вы можете видеть, что есть запрос "getCalendarFilteredData". Я основал почтовый запрос на этом. Я попытался изменить заголовок и параметры запроса, показанные ниже в коде, но я не могу понять это. Я мог бы использовать некоторую помощь. Вот что у меня есть:

url = 'https://in.investing.com/economic-calendar/Service/getCalendarFilteredData'
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 '
                        '(KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36',
          "x-requested-with": "XMLHttpRequest"
          }

query = {
            "country[]": [17, 25, 6, 37, 5, 72, 22, 39, 35, 4],
            "importance[]": [1, 2, 3],
            "dateFrom": start_date,
            "dateTo": current_date,
            "timeZone": 58,
        }

И для запроса:

with requests.Session() as s:
    try:
        web = s.post(url, headers=header, data=query)
        soup = BeautifulSoup(web.json()['data'], 'html.parser')
        rows = soup.find_all('tr', {'class': 'js-event-item'})

После вставки данных в кадр данных pandas я получаю этот размер независимо от параметров.

[200 строк x 7 столбцов]

Количество строк должно быть значительно больше, поскольку я пытаюсь очистить данные с начала 2000-х годов. Любые советы о том, как прогрессировать?

1 Ответ

0 голосов
/ 21 октября 2019

Существует ограничение для запроса, вы можете увидеть его в ответе "getCalendarFilteredData".

params:{
limit: "0,200"
}

Вы можете получить следующий набор, отправив params:{"limit_from":2) Вы можете увидеть его в запросе getCalendarFilteredData, если выпосмотрите на данные формы. Я проверил и смог получить разные данные, увеличив каждый раз параметр limit_from на 1.

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