溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

HTTPBasicAuthHandler(基本驗證)

發(fā)布時間:2020-06-24 20:49:05 來源:網(wǎng)絡(luò) 閱讀:4027 作者:yzy121403725 欄目:編程語言

客戶端然后就會用包含在頭中的正確的帳戶和密碼重新請求這個域。這是“基本驗證”。為了簡化這個過程,我們可以創(chuàng)建一個
HTTPBasicAuthHandler和opener的實例來使用這個handler。

HTTPBasicAuthHandler用一個叫做密碼管理的對象來處理url和用戶名和密碼的域的映射。如果你知道域是什么(從服務(wù)器發(fā)送的authentication 頭中),那你就可以使用一個HTTPPasswordMgr。多

數(shù)情況下人們不在乎域是什么。那樣使用HTTPPasswordMgrWithDefaultRealm就很方便。它允許你為一個url具體指定用戶名和密碼。這將會在你沒有為一個特殊的域提供一個可供選擇的密碼鎖時提供給你。

我們通過提供None作為add_password方法域的參數(shù)指出 這一點。

最高級別的url是需要authentication的第一個url。比你傳遞給.add_password()的url更深的url同樣也會匹配。

# 創(chuàng)建密碼管理器
password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
# 添加用戶名和密碼.
# 如果知道realm,用它代替None.
top_level_url = "http://www.163.com/"
password_mgr.add_password(None, top_level_url, username, password)
handler = urllib2.HTTPBasicAuthHandler(password_mgr)
#創(chuàng)建opener
opener = urllib2.build_opener(handler)
# 打開一個url
opener.open(a_url)

# 安裝opener,以后urllib2.urlopen都會用它。
urllib2.install_opener(opener)

有時候我們需要python解析一些頁面,實現(xiàn)自動化監(jiān)控的功能。而這些頁面一般需要用戶輸入username,password進行基本的驗證,這時就需要我們使用python基本的認證功能?,F(xiàn)已python抓取dubbo-admin的服務(wù)頁面進行舉例:

  1. # create a password manager

  2. password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()

  3. # Add the username and password.

  4. top_level_url = "http://1000.906.400.1620:88889/dubbo-admin/governance/services"

  5. username = "root"

  6. password = "testroot"

  7. password_mgr.add_password(None, top_level_url, username, password)

  8. handler = urllib2.HTTPBasicAuthHandler(password_mgr)

  9. # create "opener" (OpenerDirector instance)

  10. opener = urllib2.build_opener(handler)

  11. # use the opener to fetch a url

  12. opener.open(top_level_url)

  13. # Install the opener

  14. urllib2.install_opener(opener)

  15. # Now all calls to use urllib2.urlopen use our opener.

  16. print urllib2.urlopen(top_level_url).read()

明:這種認證解決了訪問一個網(wǎng)頁需要輸入用戶名、密碼的認證,卻沒有專門的login請求的頁面的認證方式。(不像qzone, 人人等都有一個類似login.do的post請求)。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI