Как настроить Tor для использования с Selenium на WSL?
Я пытаюсь использовать Selenium + Geckodriver с Tor , но я не могу заставить их играть хорошо вместе.
Тест 1: Вождение Tor с Selenium + geckodriver.
Я работаю в python3
на WSL. Я загрузил Tor и geckodriver на мою машину.
from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
# Paths to Tor-Firefox and geckodriver executables (Windows):
firefox = '/mnt/c/Users/User/Downloads/Tor Browser/Browser/firefox.exe'
gecko = '/mnt/c/Program Files/Mozilla Firefox/geckodriver.exe'
# Create the webdriver.
binary = FirefoxBinary(firefox)
driver = webdriver.Firefox(firefox_binary=binary,executable_path=gecko) # Doesn't work.
# NOTE: a similar approach with Chrome + chromedriver + selenium works as expected.
Драйвер не создан, python выплевывает следующее Ошибка Сообщение:
SessionNotCreatedException: Сообщение: невозможно найти соответствующий набор возможностей
# but, its not a problem with the geckodriver.
# Show that geckodriver works...
driver = webdriver.Firefox(executable_path=gecko)
url="https://www.google.com/"
driver.get(url)
# But, it isn't working through tor.
driver.get('https://check.torproject.org') # Sorry, you are not using Tor.
Тест 2: Рандомизация моего IP-адреса с помощью библиотеки torrequest.
Я могу рандомизировать свой IP-адрес с помощью torrequest
, но он не распознается как Tor. Я установил tor
с apt-get
и выполнил некоторую базовую c конфигурацию ( 1 , 2 ) файла torr c. Я установил HashedControlPass с tor --hash-password <password>
и добавил это к своему torrc
. Я запустил tor с tor
в командной строке. Tor запускается с шумом, возможно, проблема заключается в следующем предупреждении?
Ваш сервер (IP: ADRESS: 9001) не смог подтвердить, что его ORPort доступен. Реле не публикуют дескрипторы sh, пока их ORPort и DirPort не будут доступны. Проверьте свои брандмауэры, порты, адрес, файл / etc / hosts и т. Д. c.
Несмотря на предупреждение, я могу рандомизировать свой IP с помощью torrequest, но он не распознается как tor :
import requests
from torrequest import TorRequest
# Add HashedControlPass.
tr=TorRequest(password='<my HashedControlPass>')
# Check initial IP.
session = requests.session()
response = session.get('http://ipecho.net/plain')
ip = response.text
print("IP address is set to: {}".format(ip)) # my actual ip
# Check new IP with tor.
response = tr.get('http://ipecho.net/plain')
ip = response.text
print("IP address is set to: {}".format(ip)) # my ip is now different.
# Check if tor is active.
response = tr.get('https://check.torproject.org')
response.text # Sorry, you are not using Tor.
Тест 3: Использование tor в командной строке (WSL-Ubuntu).
Несмотря на проблемы с предыдущими методами, я могу успешно использовать torify
на командной строки.
torify wget 'https://check.torproject.org'
Возвращает желаемый ответ:
Поздравляем. Этот браузер настроен на использование Tor.
Любые мысли / помощь / советы приветствуются.