2012-07-13 57 views
0

我正在使用杜克库web代理来抓取我可以访问的数据库。我遇到了这样的问题,即由于数据库是通过代理服务器访问的,因此如果数据库不需要代理身份验证,我无法直接抓取此数据库。使用python在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罐对象持有从代理网站的cookie。

然后我尝试访问数据库与我的脚本,它仍然告诉我认证是必需的。我想知道如何解决代理服务器所需的身份验证。

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

谢谢 扬

回答

0

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