专家,
我正在使用Python2.7开发Linux系统。我有一个与API交互的URL,在浏览器中,比如Firefox,它返回一个CSV文件。
由于重定向(POST方法),我在使用python脚本访问url时遇到了麻烦。
现在,我已经在论坛上找到了线程,演示了如何发出POST请求。我的问题是;如何找到我应该随请求发送的标题和参数?
说,我想做一些类似于这个脚本的事情:
import httplib, urllib
params = urllib.urlencode({'@number': 12524, '@type': 'issue', '@action': 'show'})
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
conn = httplib.HTTPConnection("bugs.python.org")
conn.request("POST", "", params, headers)
response = conn.getresponse()
conn.close()
我会在请求中使用哪些 parms 和标题?
以下是我尝试使用简单的wget命令访问url时收到的http响应:
<html>
<head>
<title>HP Business Service Management</title>
<script>
function redirect() {
document.getElementById("directAccessForm").submit();
}
</script>
</head>
<body onload="redirect();" >
<form ID="directAccessForm" action="rfw/directAccess.csv" target="dialogFrame" metho
d="post" >
<input type="hidden" name="userName" id="userName" value="encrypt"/>
</form>
<iframe name="dialogFrame" id="dialogFrame" width="100%" height="100%" SCROLLING="no
" FRAMEBORDER="0" src="/topaz/static/act/blank.html" >
</iframe>
</body>
</html>
我是否需要任何其他信息来确定我正在寻找的参数?
答案 0 :(得分:0)
网站返回正确的文件,因为有javascript的重定向。
您可以通过从表单访问网址来下载该文件(操作属性为<form>
):
<url of the website with form>/rfw/directAccess.csv
如果您想要访问具有不同操作值属性的其他表单,您需要获取该值,例如用正则表达式。