48

urllib2でSOCKS4/5プロキシを使用してWebページをダウンロードするにはどうすればよいですか?

4

3 に答える 3

67

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 を試すこともできます。詳細については、ここをクリックしてください

于 2010-02-26T03:06:52.037 に答える
21

同時に多くの異なるプロキシを使用する必要がある場合に、パンの答えに代わるものを追加します。

その場合、http プロキシの場合と同様にオープナーを作成する必要があります。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()
于 2011-11-11T22:44:52.963 に答える
4

SOCKSはソケットレベルのプロキシであるため、によって使用されるソケットオブジェクトを置き換える必要がありますurllib2このソリューションをご覧ください。モンキーパッチが十分でない場合は、urllib2標準ライブラリからコードをサブクラス化またはコピー変更してみてください。

于 2010-02-23T13:50:59.357 に答える