Python请求 - 从获取表单下载文件

时间:2015-06-24 10:53:26

标签: python get python-requests

我正在使用Python请求包下载CSV文件。我通过Python成功浏览了一个网页,但是我仍处于下载文件的最后阶段。我被重定向到这里,html看起来(像这样):

<html>
    <body>
    <form action='/export_data_test/convertxl.aspx' method='get'>
        <input type='hidden' name='SID' value='me@domain.com'>
    </form>
    <script>window.onload = function() {document.forms[0].submit();}</script>    
    </body>
</html>

我用来提交使用POST方法的表单,但我看到正在使用GET。此外,此页面会自动提交“onload”表单,因此浏览器通常会立即下载。目前尚不清楚如何使用Python请求包来捕获它。

我试过了:

session.get(domain+"/export_data_test/convertxl.aspx", data=payload, allow_redirects=True, verify=certifi.where())

但是,这会返回不包含任何内容的响应(我希望有一个CSV文件)。同样,浏览器的行为是下载文件。

1 个答案:

答案 0 :(得分:0)

如果其他人犯了与我相同的错误,get方法会将params作为参数,而不会 data(用于post方法)。因此,发送有效负载的正确方法如下所示:

session.get(domain+"/export_data_test/convertxl.aspx", 
            params=payload, 
            allow_redirects=True, 
            verify=certifi.where())