Python请求-从Get Form下载文件



我正在使用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正在被使用。此外,该页面会自动"加载"提交表单,因此浏览器通常会立即下载。目前还不清楚如何使用Python请求包来捕获这一点。

我试过:

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

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

如果其他人犯了和我一样的错误,get方法将params作为参数,而不是data(用于post方法)。因此,发送有效载荷的正确方式如下所示:

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

最新更新