Python: Selenium with Tor - обновление ip / идентичности - PullRequest
0 голосов
/ 25 апреля 2020

Я пытаюсь, чтобы мой Python Selenium crawler работал с Tor, чтобы автоматически обновлять IP-адрес. Объединяя другие ответы, которые я нашел, связанные с этим вопросом, казалось, что это должно быть возможно с помощью следующих сценариев:

Подключение Selenium к Tor:

torexe = os.popen(r'C:\Users\bergjasper\Desktop\Tor Browser\Browser\TorBrowser\Tor\tor.exe')
PROXY = "socks5://localhost:9050" # IP:PORT or HOST:PORT
options = webdriver.ChromeOptions()
options.add_argument('--proxy-server=%s' % PROXY)
driver = webdriver.Chrome(options=options, executable_path=r'C:\Users\bergjasper\Downloads\chromedriver_win32\chromedriver.exe')
driver.get("http://check.torproject.org")

(что хорошо)

И обновление IP:

from stem import Signal
from stem.control import Controller

with Controller.from_port(port = 9051) as controller:
  controller.authenticate()
  controller.signal(Signal.NEWNYM)

driver.get("http://check.torproject.org")

Однако возникает ошибка из-за невозможности подключения, так как целевой компьютер активно отклонил соединение (WinError 10061).

Проводим еще несколько исследований Похоже, что это потребует от меня настройки этого порта, но это плохая практика, так как это делает вас уязвимым - хотя я не эксперт в этом, поэтому я не осмелился воспользоваться этим подходом и не знаю, как это может быть сделано безопасно, если это вообще возможно.

Поэтому мне было интересно, есть ли у кого-нибудь идеи, как сделать эту работу безопасной? То есть, как обновить IP-адрес моего Tor с помощью браузера Selenium chrome?

Любой вклад будет высоко ценится. Заранее спасибо.

...