使用python在web代理上抓取网站

时间:2012-07-13 15:01:39

标签: python authentication cookies proxy

我正在努力使用公爵库Web代理抓取我有权访问的数据库。我遇到的问题是,由于数据库是通过代理服务器访问的,所以如果数据库不需要代理身份验证,我就不能直接抓取这个数据库。

我尝试了几件事:

我写了一个登录公爵网络的脚本(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。

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

如果您有任何建议,请告诉我。

谢谢你, 扬

1 个答案:

答案 0 :(得分:0)

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