2015-05-15 2 views
0

Я пытаюсь запустить python selenium (firefox driver) с tor. Я проверил эту ссылку (Using Selenium WebDriver with Tor), но это реализация Java. Я относительно новичок в селене, и я столкнулся с проблемами в переводе java-кода на API Python.selenium python runing firefox с TOR (windows)

Кто-то сталкивается с этой проблемой раньше?

+0

я не столкнулись с проблемой. Selenium отлично работает с Python и Tor. – jamescampbell

+1

Не могли бы вы показать простой пример? Спасибо за повтор! – dubin

+0

ОК ОК. Я отправлю его в качестве ответа через некоторое время. Примите это, когда получите шанс. – jamescampbell

ответ

1

Вот код, который работает для меня в Python 2.7 (я последний раз обновлял его 12 марта 2015 года). В качестве дополнительного бонуса он заполняет поле имени пользователя и пароля на agora и просит вас заполнить captcha, который вы видите, затем нажимает кнопку отправки. Вы должны создать по умолчанию firefox profile, который имеет это прокси-набор для тор (127.0.0.1:9050) и заполнить путь к этому имени профиля в переменную функции профилировщика startbrowser:

from selenium import webdriver 
from selenium.webdriver.support.ui import Select, WebDriverWait 
from selenium.common.exceptions import NoSuchFrameException 
from selenium.webdriver.common.keys import Keys 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.common.by import By 

username = 'agora username' 
password = 'agora password' 
def go_to_page(br): 
    #page_num = page_num - 1 
    #start_results = page_num * 100 
    #start_results = str(start_results) 
    url = 'http://agorahooawayyfoe.onion' 
    print '[*] loading url: '+url 
    br.get(url) 
    #br.get_screenshot_as_file('agora.tiff') 
    usernamed = br.find_element_by_name("username") 
    usernamed.send_keys(username) # password 
    passwordd = br.find_element_by_name("password") # enterCaptcha 
    passwordd.send_keys(password) 
    captchad = br.find_element_by_name("enterCaptcha") 
    capt = raw_input('enter captcha you see on screen: ') 
    captchad.send_keys(capt) 
    br.implicitly_wait(3) 
    br.find_element_by_name("submit").click() 

def start_browser(): 
    profiler = webdriver.FirefoxProfile('/Users/your username/Library/Application Support/Firefox/Profiles/vxh0qxtt.tor') 
    br = webdriver.Firefox(firefox_profile=profiler) 
    br.implicitly_wait(10) 
    return br 

def main(): 
    br = start_browser() 
    go_to_page(br) 

main() 
+0

Привет, спасибо за код, который мне помог выделить. Я не использовал профиль правильно. Спасибо за помощь!!!! Для меня мне нужно было поменять порт на 9150. – dubin

+0

@dubin awesome рад услышать – jamescampbell

+0

У меня получилась эта ошибка PermissionError: [WinError 5] Доступ запрещен –

Смежные вопросы