如何在python中仅使用Tor发送某些请求?

时间:2017-12-25 19:50:19

标签: python-3.x tor

现在我正在使用以下代码将我的python移植到tor来发送请求:

socks.set_default_proxy(socks.SOCKS5, "127.0.0.1", 9450)

socket.socket = socks.socksocket

我把它放在我的代码前面,然后开始发送请求,我的所有请求都将通过tor发送。

在我的代码中,我需要发送大量请求,但其中只有一个需要实际通过tor。其余的人不必经历过。

我有什么方法可以配置我的代码,以便我可以选择通过tor发送哪些请求,以及无需发送哪些请求?

由于

1 个答案:

答案 0 :(得分:0)

您可以使用foreach仅用于Tor请求,而不是猴子修补套接字。

import requests
import json

proxies = {
    'http': 'socks5h://127.0.0.1:9050',
    'https': 'socks5h://127.0.0.1:9050'
}

data = requests.get("http://example.com",proxies=proxies).text

或者,如果必须,请在将socket.socket类更改为SOCKS套接字之前将其保存,以便在使用Tor时将其设置回来。

socks.set_default_proxy(socks.SOCKS5, "127.0.0.1", 9450)

default_socket = socket.socket
socket.socket = socks.socksocket
# do stuff with Tor
socket.socket = default_socket