opener:當你獲取一個URL時,你使用一個opener(OpenerDirector)。正常狀況下咱們一直使用默認的opener,經過urlopen,但你也能夠建立自定義的openers。html
urllib2.urlopen()函數不支持驗證、cookie或者其它HTTP高級功能。要支持這些功能,必須使用build_opener()(能夠用於讓python程序模擬瀏覽器進行訪問,做用你懂得~)函數建立自定義Opener對象python
build_opener([handler1 [ handler2, ... ]])http://www.th7.cn/Program/Python/201503/420509.shtml
opener使用handler處理任務,全部的重活都交給這些handlers來作。每個handler知道怎麼以特定的url協議打開url,或者怎麼處理打開url的某些方面,如,HTTP重定向,或者HTTP cookie。(抄的)瀏覽器
install_opener 用來建立(全局)默認opener。這個表示調用urlopen將使用你安裝的opener。cookie
Opener對象有一個open方法。該方法能夠像urlopen函數那樣直接用來獲取urls:一般沒必要調用install_opener,除了爲了方便函數
也就是說,你下面要使用urlopen,若是不定義opener爲全局的話,urlopen仍是會使用默認的,這樣你爬出來的結果仍是403.的ui