1

专家们,

我正在使用 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()

我将在我的请求中使用哪些参数标头?

以下是我尝试使用简单的 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>

我是否需要任何其他信息来确定我正在寻找的参数?

4

1 回答 1

0

该网站返回正确的文件,因为有 javascript 重定向。

您可以通过从表单访问 url 来下载文件(的操作属性<form>):

<url of the website with form>/rfw/directAccess.csv

如果您想访问具有不同动作属性值的其他表单,您需要获取该值,例如使用正则表达式。

于 2013-09-18T10:46:41.787 回答