2012-07-13 34 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標題。