Не могу получить полную таблицу из запросов Python - PullRequest
0 голосов
/ 01 октября 2018

Я пытаюсь получить всю таблицу с этого сайта: https://br.investing.com/commodities/aluminum-historical-data

Но когда я отправляю этот код:

with requests.Session() as s:
r = s.post('https://br.investing.com/commodities/aluminum-historical-data',
                 headers={"curr_id": "49768","smlID": "300586","header": "Alumínio Futuros Dados Históricos",
                          'User-Agent': 'Mozilla/5.0', 'st_date': '01/01/2017','end_date': '29/09/2018',
                         'interval_sec': 'Daily','sort_col': 'date','sort_ord': 'DESC','action': 'historical_data'})

bs2 = BeautifulSoup(r.text,'lxml')
tb = bs2.find('table',{"id":"curr_table"})

Он возвращает только часть таблицы,не вся дата, которую я только что отфильтровал.

Я видел страницу поста ниже:

enter image description here

Может кто-нибудь помочь мне получить целоетаблицу я только что отфильтровал?

1 Ответ

0 голосов
/ 01 октября 2018

Проблема в том, что вы передаете форму data как заголовки .

Вы должны отправить данные с data аргументом с ключом в request.Session.post:

with requests.Session() as session:

    url = 'https://br.investing.com/commodities/aluminum-historical-data'

    data = {
        "curr_id": "49768",
        "smlID": "300586",
        "header": "Alumínio Futuros Dados Históricos",
        'User-Agent': 'Mozilla/5.0',
        'st_date': '01/01/2017',
        'end_date': '29/09/2018',
        'interval_sec': 'Daily',
        'sort_col': 'date',
        'sort_ord': 'DESC',
        'action': 'historical_data',
        }

    your_headers = {}  # your headers here

    response = session.post(url, data=data, headers=your_headers)

bs2 = BeautifulSoup(response.text,'lxml')
tb = bs2.find('table',{"id":"curr_table"})

Я бы также рекомендовал включить ваши заголовки (особенно user-agents) в запрос POST, потому что сайт не может разрешить ботов.В этом случае, если вы это сделаете, бот будет сложнее обнаружить.

...