1

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リクエストがローカルホストから(プロキシサポートなしで)行われ、おそらくsetなしで引数なしで呼び出されるように、urllib2モジュールをモジュールからアンラップするにはどうすればよいですか?sockssetdefaultproxy

urllib2 libを再度インポートしようとしましたが、何も起こりませんでした。

これを呼び出した後、正常に動作することがわかります。

setdefaultproxy()

しかし、これは正しい方法ですか?

4

1 に答える 1

3

ここでurllib2ヘルパーライブラリを使用してSocksipyブランチを使用します: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を使用するだけで、プロキシ経由で接続されません。

于 2013-03-07T08:12:51.657 に答える