3

SOCKプロキシを介して(単にプロキシとして使用して)HTTPリクエストを作成するにはどうすればよいssh -Dですか?SOCKプロキシでリクエストを使用しようとしましたが、機能していないようです(このプルリクエストを見ました)。例えば:

proxies = { "http": "socks5://localhost:9999/" }
r = requests.post( endpoint, data=request, proxies=proxies )

リクエストライブラリを使い続けると便利ですが、動作することがわかっている場合はurllib2に切り替えることもできます。

4

2 に答える 2

5

SOCKS サポートが requests 2.10.0 に追加されたため、非常にシンプルで、あなたが持っているものに非常に近いものになりました

  1. インストールrequests[socks]:

    $ pip install requests[socks]
    
  2. proxies 変数を設定し、それを利用します。

    >>> import requests
    >>> proxies = {
            "http":"socks5://localhost:9999",
            "https":"socks5://localhost:9999"
        }
    >>> requests.get(
            "https://api.ipify.org?format=json",
            proxies=proxies
        ).json()
    {u'ip': u'123.xxx.xxx.xxx'}
    

注意すべきいくつかの点は/、プロキシ URL の末尾に a を使用しないこととsocks4://、SOCKS サーバーが SOCKS5 をサポートしていない場合にもスキームとして使用できることです。

于 2016-06-03T11:08:32.283 に答える
3

リクエストに対する SOCKS のサポートはまだ保留中です。必要に応じて、ここで私の Github リポジトリを表示して、Socksipy ライブラリの私のブランチを確認できます。これは、現在リクエストに統合されているブランチです。ただし、リクエストが完全にサポートするまでにはしばらく時間がかかります。

https://github.com/Anorov/PySocks/

urllib2 で問題なく動作するはずです。ファイルにインポートsockshandlerし、その中の例に従います。次のようなオープナーを作成します。

opener = urllib2.build_opener(SocksiPyHandler(socks.PROXY_TYPE_SOCKS5, "localhost", 9050))

次に、使用できopener.open(url)、プロキシを介してトンネリングする必要があります。

于 2013-02-21T08:54:48.567 に答える