Python - 使用GET表单下载文件

时间:2016-09-08 08:04:48

标签: python downloadfile

我正在尝试编写一个下载xlsx文件并将其保存到计算机的脚本。此文件没有特定路径,并在填写GET表单后生成。有两个提交按钮。

第一个在表格下列出结果(我可以这样做)。 第二个创建一个xlsx文件并询问保存位置。

<form action="/search" method="get" id="frm-detailedSearchForm">

...

<input type="text" name="publication_date[from]" class="date" tabindex="1" id="frm-detailedSearchForm-publication_date-from" data-nette-rules='[{"op":":filled","rules":[{"op":":pattern","msg":"Nevalidní formát data (dd.mm.rrrr)","arg":"\\d{1,2}\\.\\d{1,2}.\\d{4}"}],"control":"publication_date[from]"}]'>

...

<input type="submit" name="search" class="w-button btn ajax" tabindex="27" value="Search">
<input type="submit" name="export" class="w-button btn" tabindex="28" value="Export">
<input type="hidden" name="do" value="detailedSearchForm-submit"></form>

编辑: 解决方案最后很简单(使用mechanize lib):

url = url + ?do=detailedSearchForm-submit&export=Export
browser.retrieve(url, file.xlsx)

谢谢。

1 个答案:

答案 0 :(得分:0)

如果我帮到你,你会尝试编写一个与现有网站交互的脚本,填写表格,下载文件并保存,对吧? 你不是那个写网站的人。

是这样的 - 我强烈建议您使用selenium自动完成在真实浏览器上填写表单的任务。它有点难以开始,但更具弹性。

虽然理论上你可以写一个脚本从一个假冒提交表单的网址下载文件,但这种态度往往是麻烦的源头。如果网站的复杂程度过高 - 这种态度的可能性非常低。