如何在Tor网络上运行python脚本
我正在用python编写一个程序,试图让它通过tor网络而不是静态运行。如何在Tor网络上运行python脚本,python,security,tor,Python,Security,Tor,我正在用python编写一个程序,试图让它通过tor网络而不是静态运行。 我该怎么做?我正在使用python 3.8、tor 10.0.6和win 10。我只需要连接到https网站如果您已经安装了Tor,那么它应该可以作为代理服务器127.0.0.1:9050,您可以在请求等模块中使用它 在这个例子中,我使用portalhttpbin.org来测试我的IP import requests proxy = { 'http': 'socks5://localhost:9050',
我该怎么做?我正在使用python 3.8、tor 10.0.6和win 10。我只需要连接到https网站如果您已经安装了
Tor
,那么它应该可以作为代理服务器127.0.0.1:9050
,您可以在请求
等模块中使用它
在这个例子中,我使用portalhttpbin.org
来测试我的IP
import requests
proxy = {
'http': 'socks5://localhost:9050',
'https': 'socks5://localhost:9050',
}
url = 'https://httpbin.org/get'
r = requests.get(url, proxies=proxy) # using TOR network
#print(r.text)
print(' Tor IP:', r.json()['origin'])
r = requests.get(url)
#print(r.text)
print('normal IP:', r.json()['origin'])
这一刻,它告诉我:
Tor IP: 146.59.155.27
normal IP: 217.99.86.56
但这几乎会一直使用相同的
或IP
如果要更改IP
,则必须重新启动Tor
或者您必须在Tor
设置中配置ControlPort
和Password
(在Linux上,文件/etc/Tor/torrc
)
然后,您可以通过使用套接字发送信号来更改或IP
import socket
s = socket.socket()
s.connect(('localhost', 9051))
s.send('AUTHENTICATE "your_passord"\r\nSIGNAL NEWNYM\r\n'.encode())
或者,您也可以使用模块阀杆
from stem import Signal
from stem.control import Controller
with Controller.from_port(port=9051) as controller:
controller.authenticate(password='your_password')
controller.signal(Signal.NEWNYM)
您可以在Stackoverflow
上找到许多问题,这些问题可以更好地描述它
正如我所知,在发送信号后,可能需要几秒钟才能获得新的Tor IP
,因此您可能需要等待下一个请求。如果您想使用Tor
连接到网页,那么您必须使用代理服务器,该服务器由Tor
运行,在请求
等模块中,您应该有请求。获取(…,proxy=…)
在连接中使用tor
。顺便说一句:与正常web浏览器使用tor
的方式相同-在web浏览器设置中,必须将tor
设置为代理服务器。