0

我正在使用杜克图书馆网络代理来抓取我可以访问的数据库。我遇到的问题是,由于数据库是通过代理服务器访问的,因此我无法像数据库不需要代理身份验证那样直接抓取该数据库。

我尝试了几件事:

我编写了一个登录到 duke 网络的脚本 (https://shib.oit.duke.edu/idp/AuthnEngine')。

然后我在我的登录数据中硬编码:

login_data = urllib.urlencode({'j_username' : 'userxx',
                           'j_password' : 'passwordxx',
                           'Submit' : 'Enter'
                           })

然后我登录:

resp = opener.open('https://shib.oit.duke.edu/idp/AuthnEngine', login_data)

然后我创建一个 cookie jar 对象来保存来自代理网站的 cookie。

然后我尝试用我的脚本访问数据库,它仍然告诉我需要身份验证。我想知道如何绕过代理服务器所需的身份验证。

如果您有任何建议,请让我知道。

谢谢你,简

4

1 回答 1

0

代理登录不存储 cookie,而是使用Proxy-Authorization标头。这个标头需要与每个类似的请求一起发送Cookies。标头与常规基本身份验证的格式相同,尽管可能有不同的格式(Digest, NTLM。)我建议您检查正常登录的标头并复制并粘贴Proxy-Authorization已发送的标头。

于 2012-08-01T17:18:56.000 回答