python:如何从下载按钮隐藏链接的网页下载数据?

时间:2017-09-13 12:35:42

标签: javascript python html pandas csv

假设我想在此处下载数据:http://www.dce.com.cn/publicweb/quotesdata/memberDealPosiQuotes.html

点击下面显示的按钮时,我收到了.csv个文件: enter image description here

我想使用python自动执行此操作,我可以指定日期等。

我发现here可以使用pandas pd.read_csv从网页中读取数据,但首先需要获取正确的网址。但在我的情况下,我不知道网址是什么。

此外,我还想自己指定日期和合同等。

在询问之前,我实际上尝试了开发工具,我仍然看不到网址,而且我不知道如何使其成为程序设计。

enter image description here

1 个答案:

答案 0 :(得分:5)

javascript exportData('excel')会生成提交的表单。通过使用Chrome devtools和 Network 面板,您可以找出标题和使用的帖子数据,然后编写一个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