首页 文章

在Python上使用Selenium来操作Tor . 因不明原因不起作用

提问于
浏览
1

来自这个网站http://www.thedurkweb.com/automated-anonymous-interactions-with-websites-using-python-and-tor/

我做了以下代码

enter code here

import stem.process
from stem import Signal
from stem.control import Controller
from splinter import Browser

proxyIP = "127.0.0.1"
proxyPort = 9150

proxy_settings = {"network.proxy.type": 1,
              "network.proxy.ssl": proxyIP,
              "network.proxy.ssl_port": proxyPort,
              "network.proxy.socks": proxyIP,
              "network.proxy.socks_port": proxyPort,
              "network.proxy.socks_remote_dns": True,
              "network.proxy.ftp": proxyIP,
              "network.proxy.ftp_port": proxyPort
              }
browser = Browser('firefox', profile_preferences=proxy_settings)
browser.visit("http://www.icanhazip.com")

没工作 . 只是得到这些错误

回溯(最近一次调用最后一次):文件"C:\Users\User\AppData\Local\Programs\Python\Python35-32\lib\site-packages\selenium\webdriver\common\service.py",第74行,在start stdout = self.log_file,stderr = self.log_file)文件"C:\Users\User\AppData\Local\Programs\Python\Python35-32\lib\subprocess.py",第947行,在 init restore_signals,start_new_session中)文件"C:\Users\User\AppData\Local\Programs\Python\Python35-32\lib\subprocess.py",第1224行,在_execute_child startupinfo中) FileNotFoundError:[WinError 2]系统找不到指定的文件

在处理上述异常期间,发生了另一个异常:

回溯(最近一次调用最后一次):文件"C:/Users/User/PycharmProjects/LittleBot/Main.py",第15行,在浏览器中=浏览器('firefox',profile_preferences = proxy_settings)文件"C:\Users\User\AppData\Local\Programs\Python\Python35-32\lib\site-packages\splinter\browser.py",第63行,在浏览器中返回驱动程序(* args,** kwargs)文件"C:\Users\User\AppData\Local\Programs\Python\Python35-32\lib\site-packages\splinter\driver\webdriver\firefox.py",第48行, init timeout = timeout)文件"C:\Users\User\AppData\Local\Programs\Python\Python35-32\lib\site-packages\selenium\webdriver\firefox\webdriver.py",第140行,在 init self.service.start()文件"C:\Users\User\AppData\Local\Programs\Python\Python35-32\lib\site-packages\selenium\webdriver\common\service.py",第81行,在os.path.basename(self.path)中,self.start_error_message)selenium.common.exceptions.WebDriverException :消息:'geckodriver'可执行文件需要在PATH中 .

在以下情况中忽略异常:> Traceback(最近一次调用last):文件"C:\Users\User\AppData\Local\Programs\Python\Python35-32\lib\site-packages\selenium\webdriver\common\service.py",第173行,在 del self.stop()文件"C:\Users\User\AppData\Local\Programs\Python\Python35-32\lib\site-packages\selenium\webdriver\common\service.py",第145行,如果self.process为None,则停止:AttributeError:'Service' object没有属性'process'

进程以退出代码1结束

我安装了网页上请求的所有库,甚至做了 - 升级selenium的东西,希望摆脱错误 . 有什么方法可以解决这个问题吗?到目前为止,我所知道的是程序运行得很好,直到'browser = Browser('firefox',profile_preferences = proxy_settings)'出现 . Tor浏览器也是开放的,所以没有问题 . 一直在寻找一个半小时的解决方案,我已经尝试了与此主题相关的所有内容 .

3 回答

  • 0

    修正了它pip install selenium == 2.53.6 Selenium想介绍一些壁虎的东西,那就是搞乱一切 . 希望这对其他人有用 .

  • 0

    要在Firefox中使用selenium 3.x,您必须安装geckodriver . 发布的官方网站是:https://github.com/mozilla/geckodriver/releases

    来自selenium python docs:

    “Selenium需要驱动程序与所选浏览器连接 . 例如,Firefox需要geckodriver,需要在下面的示例运行之前安装 . 确保它在你的PATH中,例如,将它放在/ usr / bin中或/ usr / local / bin . 如果不遵守此步骤,将会出现错误selenium.common.exceptions.WebDriverException:消息:'geckodriver'可执行文件需要在PATH中 . “

  • 0

    如果您使用的是最新的selenium和最新的Firefox 1.下载最新的geckodriver 2.打开浏览器,隐藏它 . 3.运行代码:

    from selenium import webdriver
    from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
    from selenium.webdriver.firefoc.firefox_profile import FirefoxProfile
    
    binary = FirefoxBinary('C:/Program Files(x86)/Mozilla Firefox/firefox.exe')
    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(firefox_binary = binary, firefox_profile = profile, executable_path='path/to/geckodriver.exe')
    driver.get('https://check.torproject.org')
    

相关问题