一般网站的服务器会检查 访问的来源(检查IP地址、user_agent、等) 当某个来源在短时间内访问多次就有可能会被网站封杀,可以通过代理IP、修改访问的延时时间(time.sleep(x秒))、修改header的值(Request对象生成之后用request.addheader(key,val)添加或Request生成之前时传入)等方法来逃避封杀!!!
A. opener理解为类似代理的意思
1.获取代理IP地址(可以正常访问一个代理IP的网站然后用正则表达式(re.search())将信息下载下来)
2.调用这个类 proxy_support = urllib.request.ProxyHandler({}) 生成一个代理IP 参数的格式 是个字典{'网站协议类型(如htttp)':'代理IP地址:端口号'}
3.调用opener = urllib.request.build_opener(proxy_support) 返回一个OpenerDirector类的实例
4.1调用urllib.request.intall_opener(opener) 安装定制的opener(代理)(这样访问网站的时候就是使用代理IP地址访问了) 使用urllib.request.urlopen(url)打开网站
4.2或者调用opener.open(url,data=None[,timeout]) 打开网站 opener是OpenerDirector类的实例 (OpenerDirector.open(url,data=None[,timeout])