簡體   English   中英

使用 Mechanize 進行 Python 抓取腳本的 HTTP 錯誤 401

[英]HTTP Error 401 using Mechanize for Python scraping script

我正在編寫一個腳本來使用機械化從我的公司目錄網站自動抓取信息。 但是,解釋器返回_response.httperror_seek_wrapper: HTTP Error 401: Authorization Required on br.open(url)當我運行我的腳本時。 這是我的代碼中解釋器遇到錯誤的部分。

from sys import path 
path.append("./mechanize/mechanize")
import _mechanize 
from base64 import b64encode 

def login (url, username, password):
    b64login = b64encode('%s:%s' % (username, password))
    br = _mechanize.Browser()
    br.set_handle_robots(False)
    br.addheaders.append(('Authorization','Basic %s' % b64login)) 
    br.open(url)
    r = br.response()
    print r.read()

我試圖訪問的站點是我公司網絡中的一個內部站點,它使用 GlobalSign 證書在公司發行的計算機上進行身份驗證。

我確定我輸入的認證信息是正確的,我到處尋找解決方案。 有關如何解決此問題的任何提示? 謝謝!

您的身份驗證方法似乎不匹配。 您聲明您的公司使用 GlobalSign 證書,但您的代碼使用基本身份驗證。 他們不相等!!

簡單地看一下Mechanize 文檔(按原樣限制),您不會通過手動添加標頭來實現身份驗證。 它有自己的add_password方法來處理身份驗證。

此外,作為一般的 HTTP 身份驗證策略,您不應通過自己添加身份驗證標頭來使用搶占式身份驗證。 您應該使用必要的身份驗證(基於您圖書館的文檔)設置您的代碼,並讓它處理身份驗證協商。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM