如何使用SocksiPy解包模块?
我使用了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..
也许我的问题很简单:我想知道如何解除urllib2模块和socks
模块的绑定,这样后续的urllib2请求就可以直接从本地发出(不使用代理),而且可能不需要调用setdefaultproxy
这个函数,也不带参数。
我尝试重新导入urllib2库,但没有任何变化……
我发现调用以下代码后,它可以正常工作:
setdefaultproxy()
但是这样做是对的吗?
1 个回答
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,这样就不会通过代理连接。