【问题标题】:Python - Firefox HeadlessPython - Firefox 无头
【发布时间】:2012-04-21 01:42:15
【问题描述】:

在过去的几天里,我一直在使用 Selenium、Tor 和 Firefox 作为多个任务的组合。我已经设法用 Python 编写了一个简单的脚本,它通过 Selenium 控制 Firefox,而 Firefox 连接到 Tor 以保护隐私。

现在,我正在寻找一种节省资源的方法,所以我想到了在无头模式下运行 Firefox,我认为这是一个常见的功能,但似乎并非如此。我正在寻找一种方法来做到这一点。它是 Firefox 而不是基于终端的浏览器的原因是因为我在 Firefox 中使用的扩展名“TorButton”。它内置了有助于保护隐私的 javascript 注入。

如果以前有人做过(我相信很多人都做过!),我们将不胜感激一些提示,谢谢!

【问题讨论】:

    标签: python firefox selenium headless tor


    【解决方案1】:

    自 2017 年 9 月 28 日第 56 版发布以来,Firefox 无头模式可在所有三个主要操作系统中使用。

    您可以通过webdriver.FirefoxOptions() 设置无头模式,就像使用 Chrome 一样:

    from selenium import webdriver
    
    options = webdriver.FirefoxOptions()
    options.add_argument('headless')
    driver = webdriver.Firefox(options=options)
    

    附:如果您使用 Selenium webdriver.FirefoxOptions() 替换为 webdriver.firefox.options.Options()(参见 PR #5120)。

    此外,使用环境变量MOZ_HEADLESS 会做同样的事情:

    import os
    from selenium import webdriver
    
    os.environ['MOZ_HEADLESS'] = '1'  # <- this line
    driver = webdriver.Firefox()
    

    【讨论】:

      【解决方案2】:

      如果终于找到答案:

      首先,首先做这些:
      注意正确设置火狐驱动路径。

      然后:

      sudo apt-add-repository ppa:mozillateam/firefox-next
      sudo apt-get 更新
      sudo apt-get install firefox xvfb
      Xvfb :10 -ac &
      导出 DISPLAY=:10

      最后运行这个命令,看看我们在执行 not 时是否有任何错误。

      火狐

      如果没有任何输出,只需单击 ctrl+c
      好的,然后写这段代码。

      from selenium import webdriver
      
      class FireFoxLoadTest:
          def __init__(self):
              # 1 - Load a fire fox web driver
              self.driver = webdriver.Firefox()
      
          def do_test(self, url):
              # 2 - Start to check url on the fire fox browser
              result = self.driver.get(url)
              self.driver.quit()
              return self.result
      
      fire_fox = FireFoxLoadTest()
      res = fire_fox.do_test('http://www.google.com')
      print(res)
      

      【讨论】:

        【解决方案3】:

        headless firefox 正在取得进展。

        2017 年 4 月 21 日起,https://adriftwith.me/coding/2017/04/21/headless-slimerjs-with-firefox/

        tl;dr Firefox Nightly 在 Linux 上支持无头运行 SlimerJS。
        更多平台和完全无头的 Firefox 即将推出。

        【讨论】:

          【解决方案4】:

          或者使用真正的无头浏览器,例如 Phantomjs,它重量轻且与 selenium 完美集成

          from selenium import webdriver
          driver=webdriver.PhantomJS('your pahtomjs exe file locaiton')
          

          【讨论】:

          • 问题的标题是:firefox
          【解决方案5】:

          【讨论】:

          • 啊,这太棒了!虽然有它的 Windows 版本或一些可以在 Windows 上运行的方法吗?
          • @Dboy1612 看起来不像,这是一个很 unix'y 的东西,stackoverflow.com/questions/944086/…
          • @Dustin 自 2017 年 9 月 28 日版本 56 发布以来,Firefox 无头模式在所有三个主要操作系统中均可用。现在你可以很容易地用 selenium 做到这一点,请在下面查看我的答案。
          猜你喜欢
          • 2019-06-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-10-29
          • 1970-01-01
          • 2018-06-15
          • 1970-01-01
          • 2020-05-06
          相关资源
          最近更新 更多