我如何使用urllib2的SOCKS 4/5代理?
如何使用urllib2的SOCKS 4/5代理下载网页?
您可以使用SocksiPy模块。 只需将文件“socks.py”复制到Python的lib / site-packages目录中,即可开始使用。
您必须在urllib2之前使用袜子 。 (尝试一下pip install PySocks
)
例如:
import socks import socket socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 8080) socket.socket = socks.socksocket import urllib2 print urllib2.urlopen('http://www.google.com').read()
你也可以尝试pycurl lib和tsocks,更多的细节请点击这里 。
当需要同时使用多个不同的代理服务器时,添加pan的答案。
在这种情况下,您需要像使用http代理一样创build一个开瓶器。 GitHub https://gist.github.com/869791提供了一个代码;
opener = urllib2.build_opener(SocksiPyHandler(socks.PROXY_TYPE_SOCKS4, 'localhost', 9999)) print opener.open('http://www.whatismyip.com/automation/n09230945.asp').read()
由于SOCKS是套接字级代理,所以您必须replaceurllib2
使用的套接字对象。 请看看这个解决scheme。 如果猴子补丁不够好,那么您可以尝试从urllib2
标准库中urllib2
或复制修改代码。