Python – Firefox sin cabeza

He pasado los últimos días jugando con Selenium, Tor y Firefox como una combinación para múltiples tareas. He logrado escribir un script simple en Python que toma el control de Firefox a través de Selenium, mientras que Firefox está conectado a Tor para la privacidad.

Ahora, estoy buscando una manera de ahorrar recursos, por lo que pensé en ejecutar Firefox en modo sin cabeza, lo que pensé que era una característica común pero no parece serlo. Estoy buscando un método para hacer eso. La razón de que sea Firefox y no un navegador basado en terminal es la extensión “TorButton” que estoy usando dentro de Firefox. Tiene inyecciones de javascript incorporadas que ayudan con la privacidad.

Si alguien ha hecho esto antes (lo cual estoy seguro de que muchos lo han hecho), algunos consejos serían muy apreciados, ¡gracias!

xvfb es una forma común de hacer esto. La búsqueda de “selenium xvfb” debería encontrar lotes, como:

Desde la versión 56 lanzada el 28 de septiembre de 2017, el modo sin cabeza Firefox está disponible en los tres sistemas operativos principales.

Puedes configurar el modo sin cabeza a través de webdriver.FirefoxOptions() , como hiciste con Chrome:

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

PS Si usa Selenium <3.8.0, debe reemplazar webdriver.FirefoxOptions() con webdriver.firefox.options.Options() (vea PR # 5120 ).

Además, usar la variable de entorno MOZ_HEADLESS hará lo mismo:

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

O, alternativamente, use un verdadero navegador sin cabeza, como Phantomjs que es ligero y bien integrado con selenium

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

Se está avanzando en Firefox sin cabeza.

Desde el 21 de abril de 2017, https://adriftwith.me/coding/2017/04/21/headless-slimerjs-with-firefox/

tl; dr Firefox Nightly en Linux admite la ejecución sin problemas de SlimerJS.
Más plataformas y Firefox sin cabeza completa vendrán pronto.

Si finalmente encuentra la respuesta:

Primero, de primero haz estos:
Tenga cuidado de establecer correctamente la ruta de acceso de Fox Fire.

Y entonces:

sudo apt-add-repository ppa: mozillateam / firefox-next
sudo apt-get update
sudo apt-get install firefox xvfb
Xvfb: 10 -ac &
exportación PANTALLA =: 10

Y al final, ejecute este comando para ver si tenemos algún error en nuestra implementación de no.

Firefox

y si no hay ninguna salida simplemente haga clic en ctrl + c .
Ok, después de eso escribe estos códigos.

 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)