1. 再a方法中新建了个opener,使用了代理:
proxydict = {} proxydict['http'] = "http://%s:%s"%(ip,port) #print proxydict proxy_handler = urllib2.ProxyHandler(proxydict) opener = urllib2.build_opener(proxy_handler) opener.addheaders = [('User-agent', 'Mozilla/5.0')] urllib2.install_opener(opener)
urllib2.urlopen(.......)
2. 又定义了b方法,
不适用proxy来访问,直接urlopen。
response = urllib2.urlopen(。。。。。。。。。
这个时候有可能会导致b方法再被运行的时候使用的是a方法中的opener,导致是使用代理访问的,
这个原因我没有找到,不过这样有可能会产生这样的问题,当我将b方法中的改为下面这样就没有问题了:(生成个空的opener)
opener = urllib2.build_opener() opener.addheaders = [('User-agent', 'Mozilla/5.0')] urllib2.install_opener(opener) response = urllib2.urlopen(urls)