Requests Over Tor in Python
- For MacOS :
pip3 install stemin a python3 venv ( recommended ).
- For Ubuntu:
sudo pip3 install stemin a python3 venv ( recommended ).
from stem import Signal from stem.control import Controller with Controller.from_port(port = 9051) as controller: controller.authenticate(password='your password set for tor controller port in torrc') print("Success!") controller.signal(Signal.NEWNYM) print("New Tor connection processed")
However, you're not done yet. You might get this error :
error(61, 'Connection refused')
It's because Port 9051 is not open on your machine yet.
To fix this issue, you'll need to edit your torrc file and uncomment the corresponding lines.
ControlPort 9051 ## If you enable the controlport, be sure to enable one of these ## authentication methods, to prevent attackers from accessing it. HashedControlPassword16:<your_password>
To generate your password, run :
tor --hash-password "<new_password>"
<new_password> is the password that you want to set.
And you're done with Making Requests over Tor.
Note: To run the
tor commands, you need to have
tor package installed. For macOS, it can be easily installed using
brew install tor
Previously published at https://dev.to/arthtyagi/how-to-make-requests-over-tor-58ep