我研究了它,但我得到了解决方案:
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行,in browser = webdriver.Firefox(binary,profile)文件“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)
我收到了这个错误:
追踪(最近一次通话): 文件“C:\ Python34 \ torfirstscript.py”,第9行,in 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,timeout), 文件“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) 在launch_browser中输入文件“C:\ Python34 \ lib \ site-packages \ selenium-2.43.0-> py3.4.egg \ selenium \ webdriver \ firefox \ firefox_binary.py”,第64行 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 \ webdriver-py-profilecopy Firefox输出:无”
将该图像作为输出。
答案 0 :(得分:4)
在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()
答案 1 :(得分:1)
使用以下方式更新selenium:
pip install -U selenium
然后在启动TOR之后运行您的代码。 此错误已得到确认和修复。
P:不要忘记' Sudo'如果你在Linux上。答案 2 :(得分:1)
另一个简单的解决方案是: 在Firefox或Chrome中创建新的配置文件, 配置浏览器以使用Tor代理(将SOCKS 5代理设置为地址127.0.0.1端口9150),然后在使用webdriver时加载该配置文件。
答案 3 :(得分:0)
您正在将FirefoxBinary
实例作为第一个位置参数传递给Firefox
构造函数,但是,根据definition,Firefox
期望FirefoxProfile
实例作为第一个位置论证。
相反,只需使用关键字参数:
browser = webdriver.Firefox(firefox_binary=binary, firefox_profile=profile)
这给可读性带来了很小的好处。
答案 4 :(得分:0)
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")
答案 5 :(得分:0)
我在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")
答案 6 :(得分:0)
我试过这样的事情并且工作了:
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浏览器
答案 7 :(得分:0)
由于其中某些方法在当前Windows版本中不起作用,因此返回“启动失败”错误将通知用户,为了启动代理,在执行脚本之前,他们将需要已经运行。 / p>
答案 8 :(得分:0)
截至2020年5月12日。在运行此脚本之前,您需要运行浏览器。这将在Chrome中运行Tor。
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
tor_proxy = "127.0.0.1:9150"
chrome_options = Options()
'''chrome_options.add_argument("--test-type")'''
chrome_options.add_argument('--ignore-certificate-errors')
'''chrome_options.add_argument('--disable-extensions')'''
chrome_options.add_argument('disable-infobars')
'''chrome_options.add_argument("--incognito")'''
chrome_options.add_argument('--user-data=C:\\Users\\user\\AppData\\Local\\Google\\Chrome\\User Data\\Default')
chrome_options.add_argument('--proxy-server=socks5://%s' % tor_proxy)
driver = webdriver.Chrome(executable_path='C:\\chromedriver.exe', options=chrome_options)
driver.get('https://www.google.com')
time.sleep(4)
driver.switch_to.frame(0)
driver.find_element_by_id("introAgreeButton").click()