【发布时间】:2014-11-11 15:55:45
【问题描述】:
我有兴趣看看 Requests 是否可以处理我主要在 Mechanize 中完成的一些任务。
Mechanize 可以轻松处理填写表格和提交表格,我很难在 Requests 中尝试做同样的事情。
例如,
import mechanize
br = mechanize.Browser()
url = "https://www.euronext.com/en/data/download?ml=nyx_pd_stocks&cmd=default&formKey=nyx_pd_filter_values%3A18d1ee939a63d459d9a2a3b07b8837a7"
br.open(url)
br.select_form(nr=1)
br.form['format']=['2']
br.form['date_format']=['2']
response = br.submit().read()
请求等价物不是:
import requests
url = "https://www.euronext.com/en/data/download?ml=nyx_pd_stocks&cmd=default&formKey=nyx_pd_filter_values%3A18d1ee939a63d459d9a2a3b07b8837a7"
payload = {'format':'2','date_format':'2'}
r = requests.post(url, data=payload)
requests.post 是否不提交表单以下载页面中嵌入的 CSV?
此外,有关其他信息,以下是页面上的表单外观:
for form in br.forms():
print form
<POST https://www.euronext.com/en/data/download?ml=nyx_pd_stocks&cmd=default&formKey=nyx_pd_filter_values%3A18d1ee939a63d459d9a2a3b07b8837a7 application/x-www-form-urlencoded
<TextControl(search_block_form=)>
<SubmitControl(op=Search) (readonly)>
<RadioControl(search_type=[*quote, site])>
<HiddenControl(form_build_id=form-af2eb21e9b6448ffca4e358d0b52f499) (readonly)>
<HiddenControl(form_id=search_block_form) (readonly)>
<HiddenControl(search_target=search_instruments) (readonly)>
<HiddenControl(search_language=&lan=) (readonly)>>
<POST https://www.euronext.com/en/data/download?ml=nyx_pd_stocks&cmd=default&formKey=nyx_pd_filter_values%3A18d1ee939a63d459d9a2a3b07b8837a7 application/x-www-form-urlencoded
<RadioControl(format=[*1, 2, 3])>
<RadioControl(layout=[*2, 1])>
<RadioControl(decimal_separator=[*1, 2])>
<RadioControl(date_format=[*1, 2])>
<SubmitControl(op=Go) (readonly)>
<SubmitControl(op=Cancel) (readonly)>
<HiddenControl(form_build_id=form-37e81285a4dbf60e091037f904bac2eb) (readonly)>
<HiddenControl(form_id=nyx_download_form) (readonly)>>
【问题讨论】:
标签: python mechanize python-requests