python: Как я могу скачать данные с веб-страницы, где ссылка скрыта кнопкой загрузки?

Предположим, я хочу загрузить данные здесь: http://www.dce.com.cn/publicweb/quotesdata/memberDealPosiQuotes.html

При нажатии на кнопку, показанную ниже, я получил .csv файл:

Я хочу сделать это автоматически, используя python, где я могу указать дату и т. Д.

Я нахожу здесь, что можно использовать панд pd.read_csv читать данные с веб-страницы, но сначала нужно получить правильный URL-адрес. Однако в моем случае я не знаю, что такое URL.

Кроме того, я также хочу уточнить дату и договор и т.д.

Прежде чем спросить, я на самом деле попробовал инструмент разработки, я все еще не вижу URL и не знаю, как сделать его программным.

1 ответ

Решение

JavaScript exportData('excel') результаты в форме, которая представлена. Используя Chrome devtools и панель " Сеть", вы можете определить заголовки и используемые данные публикации, а затем написать скрипт на python для отправки идентичного http-запроса.

import requests
url = 'http://www.dce.com.cn/publicweb/quotesdata/exportMemberDealPosiQuotesData.html'
formdata = {
    'memberDealPosiQuotes.variety':'a',
    'memberDealPosiQuotes.trade_type':0,
    'contract.contract_id':'all',
    'contract.variety_id':'a',
    'exportFlag':'excel',
}
response = requests.post(url, data=formdata)
filename = response.headers.get('Content-Disposition').split('=')[-1]
with open(filename, 'wb') as fp:
    fp.write(response.content)

Вероятно, можно найти способы изменить данные поста для получения других данных. Либо путем обратного инжиниринга, методом проб и ошибок или путем поиска какой-либо документации.

Например, вы можете включить поля для года и даты:

    'year':2017,
    'month':3,
    'day':20
Другие вопросы по тегам