我正在使用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文件)。同样,浏览器的行为是下载文件。
答案 0 :(得分:0)
如果其他人犯了与我相同的错误,get
方法会将params
作为参数,而不会 data
(用于post
方法)。因此,发送有效负载的正确方法如下所示:
session.get(domain+"/export_data_test/convertxl.aspx",
params=payload,
allow_redirects=True,
verify=certifi.where())