Python Selenium与TOR浏览器绑定

我研究了它,但我得到了解决方案:

from selenium import webdriver
profile = webdriver.FirefoxProfile()
profile.set_preference('network.proxy.type', 1)
profile.set_preference('network.proxy.socks', '127.0.0.1')
profile.set_preference('network.proxy.socks_port', 9050)
driver = webdriver.Firefox(profile)
driver.get('http://estoeslapollaconcebol.la')

它给出了这个错误:

无法加载配置文件 . 配置文件目录:C:\ Users \ HPPAV1~1 \ AppData \ Local \ Temp \ tmppcuwx3xd Firefox输出:无

当我尝试这个解决方案 .

from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
profile=webdriver.FirefoxProfile('C:\\Users\\HP PAV 15\\Desktop\\Tor     Browser\\Browser\\TorBrowser\\Data\\Browser\\profile.default\\')
binary =FirefoxBinary('C:\\Users\\HP PAV 15\\Desktop\\Tor Browser\\Browser\\firefox')
#browser = binary.launch_browser(profile)
profile.set_preference('network.proxy.type', 1)
profile.set_preference('network.proxy.socks', '127.0.0.1')
profile.set_preference('network.proxy.socks_port', 9150)
browser=webdriver.Firefox( binary, profile)
browser.get("http://yahoo.com")
browser.save_screenshot("/Users/admin/Pictures/screenshot.png")
browser.close()

它给了我以下错误:

Traceback(最近一次调用最后一次):文件“C:/Python34/torfirstscript.py”,第10行,在browser = webdriver.Firefox(二进制文件,配置文件)文件“C:\ Python34 \ lib \ site-packages \ selenium- 2.43.0-py3.4.egg \ selenium \ webdriver \ firefox \ webdriver.py“,第46行,在init self.NATIVE_EVENTS_ALLOWED和self.profile.native_events_enabled)AttributeError:'FirefoxBinary'对象没有属性'native_events_enabled'

通过应用

browser=webdriver.Firefox( firefox_binary = binary, firefox_profile = profile)

我收到了这个错误:

Traceback(最近一次调用最后一次):文件“C:\ Python34 \ torfirstscript.py”,第9行,在browser = webdriver.Firefox(firefox_binary = binary,firefox_profile => profile)文件“C:\ Python34 \ lib \ site -packages \ selenium-2.43.0-> py3.4.egg \ selenium \ webdriver \ firefox \ webdriver.py“,第59行,在init self.binary中,超时),文件”C:\ Python34 \ lib \ site- packages \ selenium-2.43.0-> py3.4.egg \ selenium \ webdriver \ firefox \ extension_connection.py“,第47行,在> init self.binary.launch_browser(self.profile)文件”C:\ Python34 \ lib \ site-packages \ selenium-2.43.0-> py3.4.egg \ selenium \ webdriver \ firefox \ firefox_binary.py“,第64行,在launch_browser中self._wait_until_connectable()文件”C:\ Python34 \ lib \ site- packages \ selenium-2.43.0-py3.4.egg \ selenium \ webdriver \ firefox \ firefox_binary.py“,第108行,在_wait_until_connectable self.profile.path,self._get_firefox_output()))selenium.common.exceptions.WebDriverException :消息:“无法加载配置文件 . 配置文件目录:> C:\ Users \ HPPAV1~1 \ AppData \ Local \ Temp \ tmpig7zvx_0 \ webdrive r-py-profilecopy Firefox输出:无“

将该图像作为输出 .

enter image description here

回答(6)

3 years ago

在Windows上使用Selenium和Tor的工作示例:

from selenium import webdriver
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

binary = FirefoxBinary(r"C:\Program Files (x86)\TorBrowser\Browser\firefox.exe")
profile = FirefoxProfile(r"C:\Program Files (x86)\TorBrowser\Browser\TorBrowser\Data\Browser\profile.default")

driver = webdriver.Firefox(profile, binary)
driver.get("http://stackoverflow.com")
driver.save_screenshot("screenshot.png")
driver.quit()

3 years ago

使用以下方法更新selenium:

pip install -U selenium

然后在启动TOR后运行代码 . 此错误已得到确认和修复 .

P.S:如果你在Linux上,不要忘记'Sudo' .

3 years ago

您正在将 FirefoxBinary 实例作为 Firefox 构造函数的第一个位置参数传递,但是,根据definitionFirefox 期望 FirefoxProfile 实例作为第一个位置参数 .

相反,只需使用关键字参数:

browser = webdriver.Firefox(firefox_binary=binary, firefox_profile=profile)

这给可读性带来了一点小小的好处 .

3 years ago

Windows上最新TOR安装的代码:

from selenium import webdriver
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

binary = FirefoxBinary(r"C:\Users\<Windows User>\Desktop\Tor Browser\Browser\firefox.exe")
profile = FirefoxProfile(r"C:\Users\<Windows User>\Desktop\Tor Browser\Browser\TorBrowser\Data\Browser\profile.default")

driver = webdriver.Firefox(profile, binary)
driver.get("http://stackoverflow.com")

3 years ago

我在Windows上解决了类似的问题:

from selenium import webdriver
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

binary = FirefoxBinary(r"C:\Users\<Windows User>\Desktop\Tor Browser\Browser\firefox.exe")

driver = webdriver.Firefox(firefox_binary=binary)
driver.profile.set_preference('network.proxy.type', 1)
driver.profile.set_preference('network.proxy.socks', '127.0.0.1')
driver.profile.set_preference('network.proxy.socks_port', 9051)

driver.get("http://stackoverflow.com")

3 years ago

我试过这样的事情并且工作:

profile = webdriver.FirefoxProfile()
profile.set_preference('network.proxy.type', 1)
profile.set_preference('network.proxy.socks', '127.0.0.1')
profile.set_preference('network.proxy.socks_port', 9150)
driver = webdriver.Firefox(profile)

在执行此操作时打开Tor浏览器