【问题标题】:How to only send certain requests with Tor in python?如何在 python 中只使用 Tor 发送某些请求?
【发布时间】:2017-12-25 19:50:18
【问题描述】:

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

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

socket.socket = socks.socksocket

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

在我的代码中,我需要发送大量请求,但其中只有 1 个需要真正通过 tor。其余的就不用通过t​​or了。

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

谢谢

【问题讨论】:

  • 什么样的请求?如果这些是 HTTP 请求且未使用 keep-alive,则您的套接字会在每次请求后关闭。因此,您需要为每个请求重复上述代码。

标签: python-3.x tor


【解决方案1】:

您可以将requests 用于仅用于 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-13
    • 2015-07-28
    • 2022-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多