如何用SocksiPy打开模块?

时间:2013-03-01 15:13:15

标签: python module proxy urllib2 socks

我使用SocksiPy模块通过SOCKS代理代理我的urllib2请求:

import socks

# Set the proxy information
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, 'x.x.x.x', 9050)

# Route an HTTP request through the SOCKS proxy 
socks.wrapmodule(urllib2)

print urllib2.urlopen('http://www.google.com').read()

# other urllib2 requests to follow here..

也许我的问题很简单:如何socks解包 urllib2模块, 以便从localhost发出以下urllib2请求(没有代理支持) 也许没有设置调用setdefaultproxy没有参数?

我试图再次导入urllib2 lib但没有发生任何事情..

我认为在我打电话之后它工作正常:

setdefaultproxy()

但这是正确的方法吗?

1 个答案:

答案 0 :(得分:3)

在此处使用我的Socksipy分支和urllib2帮助程序库:https://github.com/Anorov/PySocks

示例代码,适合您的情况:

import socks, urllib2
from sockshandler import SocksiPyHandler
proxy_opener = urllib2.build_opener(SocksiPyHandler(socks.PROXY_TYPE_SOCKS5, "IP", 9050))
print proxy_opener.open("http://whatismyip.org/").read()

您可以设置不同的开启者以使用不同的代理,或者在您的情况下,您可以简单地使用默认的urllib2处理程序或urllib2.urlopen,它不会通过代理连接。