关于python:如何使用SocksiPy解开模块?

How can I unwrap a module with SocksiPy?

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

1
2
3
4
5
6
7
8
9
10
11
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模块,
因此,以下urllib2请求是从本地主机发出的(没有代理支持)
可能没有设置调用没有参数的setdefaultproxy吗?

我试图再次导入urllib2 lib,但是什么也没发生。.

我称它为:

1
setdefaultproxy()

但这是正确的方法吗?


在这里将我的Socksipy分支与urllib2帮助器库一起使用:https://github.com/Anorov/PySocks

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

1
2
3
4
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,它不会通过代理连接。