Stem没有在Python中生成新的IP地址

Stem没有在Python中生成新的IP地址,python,tor,Python,Tor,为什么Signal.NEWNYM不生成新的IP地址 from stem import Signal from stem.control import Controller import requests with Controller.from_port(port=9051) as controller: print('Ready') controller.authenticate(password='872860B76453A77D60CA2BB8C1A70420720932

为什么
Signal.NEWNYM
不生成新的IP地址

from stem import Signal
from stem.control import Controller
import requests

with Controller.from_port(port=9051) as controller:
    print('Ready')
    controller.authenticate(password='872860B76453A77D60CA2BB8C1A7042072093276A3D701AD684053EC4C')
    print("Success!")
    controller.signal(Signal.NEWNYM)
    print("New Tor connection processed")
    print(requests.get('http://icanhazip.com').content)

NEWNYM
信号并不用于获取新的出口节点,它只是将当前电路标记为脏,并确保新连接将使用新电路

从:

需要注意的一点是,一个新的电路并不一定意味着一个新的IP地址。路径是基于诸如速度和稳定性等启发式方法随机选择的。Tor网络中只有这么多大型出口,因此重用以前的出口并不少见

Tor没有循环IP地址的方法。这是故意的,而且有几个原因。首先,这种能力通常是由于一些不太好的原因而被要求的,比如禁令规避或搜索引擎优化。第二,重复创建电路会给Tor网络带来很高的负载,所以请不要

编辑。我错过了最初您提出请求时没有使用Tor(代理)的机会!这是问题的第一部分

您应该首先安装
socks
请求的支持
库(
pip安装请求[socks]
),然后通过本地Tor代理发出请求,如下所示:

requests.get('https://httpbin.org/ip', 
             proxies={'http': 'socks5://127.0.0.1:9050',
                      'https': 'socks5://127.0.0.1:9050'}).text

NEWNYM
信号并不用于获取新的出口节点,它只是将当前电路标记为脏,并确保新连接将使用新电路

从:

需要注意的一点是,一个新的电路并不一定意味着一个新的IP地址。路径是基于诸如速度和稳定性等启发式方法随机选择的。Tor网络中只有这么多大型出口,因此重用以前的出口并不少见

Tor没有循环IP地址的方法。这是故意的,而且有几个原因。首先,这种能力通常是由于一些不太好的原因而被要求的,比如禁令规避或搜索引擎优化。第二,重复创建电路会给Tor网络带来很高的负载,所以请不要

编辑。我错过了最初您提出请求时没有使用Tor(代理)的机会!这是问题的第一部分

您应该首先安装
socks
请求的支持
库(
pip安装请求[socks]
),然后通过本地Tor代理发出请求,如下所示:

requests.get('https://httpbin.org/ip', 
             proxies={'http': 'socks5://127.0.0.1:9050',
                      'https': 'socks5://127.0.0.1:9050'}).text

当你发出请求时,你得到的是相同的IP还是第一次IP没有改变

如果请求上的IP相同:您应该将脚本置于睡眠状态30秒,然后就可以工作了

我也有同样的问题,通过睡眠解决了

def renew_connection():
    with Controller.from_port(port=9051) as controller:
        controller.authenticate(password="YourPass")
        controller.signal(Signal.NEWNYM)
    time.sleep(30)

还要确保密码和端口正确

当您发出请求时,您获得了相同的IP,还是第一次IP没有改变

如果请求上的IP相同:您应该将脚本置于睡眠状态30秒,然后就可以工作了

我也有同样的问题,通过睡眠解决了

def renew_connection():
    with Controller.from_port(port=9051) as controller:
        controller.authenticate(password="YourPass")
        controller.signal(Signal.NEWNYM)
    time.sleep(30)

还要确保密码和端口正确

它向我显示了相同的原始IP地址。它向我显示了相同的原始IP地址。实际上,我正试图解析google scholar以用于我的研究目的,而google在一次请求后就阻止了我。我找到了IP解决方案的更改,并尝试了,但它显示了我原来的IP,甚至这个程序没有使用tor。我担心
tor
不会为此目的帮助您。我在这里读到一些评论和建议,希望在几秒钟后更改ip。非常感谢您的帮助。现在我每次都得到新的IP。我可以用它向谷歌和其他网站(如不同的用户代理)发出请求吗?我试图修改我的代码,当我使用我的Ip网站时,它每次都显示相同的Ip并显示captcha错误。实际上,我正试图解析google scholar用于我的研究目的,谷歌在一次请求后就阻止了我。我找到了IP解决方案的更改,并尝试了,但它显示了我原来的IP,甚至这个程序没有使用tor。我担心
tor
不会为此目的帮助您。我在这里读到一些评论和建议,希望在几秒钟后更改ip。非常感谢您的帮助。现在我每次都得到新的IP。我可以用它向谷歌和其他网站(如不同的用户代理)发出请求吗?我试图修改我的代码,当我使用我的Ip网站时,它每次都显示相同的Ip,并显示验证码错误。