Created
December 21, 2017 23:07
-
-
Save andrelince/dd13a516e42c427b9a48b1e7bd0037f7 to your computer and use it in GitHub Desktop.
Tor Browser proxy for Python 2/3
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| from selenium import webdriver | |
| import time, subprocess, socket, socks | |
| class TorProxy(): | |
| def __init__(self): | |
| self.browser_path = raw_input("Type the path for Tor browser executable:\n") | |
| self.phantom_path = raw_input("Enter the path to PhantomJS:\n") | |
| self.driver = None | |
| self.proc = None | |
| self.default_socket = socket.socket | |
| def start_tor(self): | |
| service_args = ['--proxy=localhost:9150', '--proxy-type=socks5', ] | |
| self.proc = subprocess.Popen(self.browser_path) | |
| self.driver = webdriver.PhantomJS(executable_path=self.phantom_path, service_args=service_args) | |
| time.sleep(20) | |
| print("==================================\n=> TOR is running on port 9150...\n==================================\n ") | |
| def stop_tor(self): | |
| #recover default socket | |
| socket.socket = self.default_socket | |
| self.driver.close() | |
| self.proc.kill() | |
| def proxy_requests(self): | |
| # Configuration | |
| SOCKS5_PROXY_HOST = '127.0.0.1' | |
| SOCKS5_PROXY_PORT = 9150 | |
| # Set up a proxy | |
| socks.set_default_proxy(socks.SOCKS5, SOCKS5_PROXY_HOST, SOCKS5_PROXY_PORT) | |
| socket.socket = socks.socksocket | |
| print("==================================\n" | |
| "=> Using TOR on " + SOCKS5_PROXY_HOST + ":" + str(SOCKS5_PROXY_PORT) + "...\n" | |
| "==================================\n ") | |
| if __name__ == "__main__": | |
| tor = TorProxy() | |
| tor.start_tor() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment