python urllib2的proxyhandler

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)    

 

posted @ 2014-03-11 16:12  马僧  阅读(3915)  评论(0编辑  收藏  举报