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