我花了最后几天把Selenium,Tor和Firefox作为多项任务的组合。我已经设法在Python中编写了一个简单的脚本,通过Selenium控制Firefox,而Firefox则连接到Tor以保护隐私。
现在,我正在寻找一种节省资源的方法,所以我想在无头模式下运行Firefox,我认为这是一个常见的功能,但似乎并不是这样。我正在寻找一种方法来做到这一点。它是Firefox而不是某些基于终端的浏览器的原因是因为我在Firefox中使用的扩展“TorButton”。它内置了javascript注入,有助于隐私。
如果有人之前已经这样做了(我相信很多人都有!),我们将非常感谢您的一些提示,谢谢!
答案 0 :(得分:11)
xvfb是这样做的常用方法。搜索“selenium xvfb”应该找到很多,例如:
答案 1 :(得分:10)
您可以通过webdriver.FirefoxOptions()
设置无头模式,就像使用Chrome一样:
from selenium import webdriver
options = webdriver.FirefoxOptions()
options.add_argument('headless')
driver = webdriver.Firefox(options=options)
P.S。如果你使用Selenium< 3.8.0,您必须将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 :(得分:4)
或者使用真正的无头浏览器,例如 Phantomjs ,它重量轻,与硒很好地集成
from selenium import webdriver
driver=webdriver.PhantomJS('your pahtomjs exe file locaiton')
答案 3 :(得分:0)
无头火狐正在取得进展。
2017年4月21日,https://adriftwith.me/coding/2017/04/21/headless-slimerjs-with-firefox/
tl; Linux上的Firefox Nightly博士支持无头地运行SlimerJS 更多平台和完全无头的Firefox即将推出。
答案 4 :(得分:0)
如果最终找到答案:
首先,先做这些:
请注意正确设置火狐驱动路径。
然后:
sudo apt-add-repository ppa:mozillateam / firefox-next
sudo apt-get update
sudo apt-get install firefox xvfb
Xvfb:10 -ac&amp;
export 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)