Селен безголовый Firefox - очень медленно - PullRequest
1 голос
/ 12 ноября 2019

Я пытаюсь получить некоторые веб-данные, используя Selenium для запуска Firefox в автономном режиме в скрипте Python3. Я запускаю скрипт на Debian.

Код работает нормально, но очень и очень медленно. Полминуты, чтобы получить заголовок веб-страницы. Мне нужно использовать это в производственной среде, и это не будет работать, если это так медленно. Я новичок в Selenium, так что это может быть основная ошибка, которую я делаю ...

import selenium
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.firefox.options import Options
import time
from decimal import Decimal

start_time = time.time()

fireFoxOptions = webdriver.FirefoxOptions()
fireFoxOptions.set_headless()
browser = webdriver.Firefox(firefox_options=fireFoxOptions)

fetchUrl = "https://www.amazon.com/CakCity-Military-Waterproof-Luminous-Stopwatch/dp/B018HTGSN8/ref=sxin_1_ac_d_rm?ac_md=0-0-d2F0Y2g%3D-ac_d_rm&keywords=watch&pd_rd_i=B018HTGSN8&pd_rd_r=ad451c0c-abfe-4436-bee4-d11f9e1dbb1e&pd_rd_w=J9Zl5&pd_rd_wg=AqMuw&pf_rd_p=ed481207-4bea-4e19-bbad-73ed40fdc292&pf_rd_r=A7B9299YFYD1G0JZ81YH&psc=1&qid=1573502062"

browser.get( fetchUrl )

print ( browser.title )

executionTime = round(time.time() - start_time, 2)
print( "- execution time [" + str( executionTime ) + "]" )

browser.close()

browser.quit()

Время выполнения варьируется от 20 с до 30 с

  • Debian 9.4 (Stretch)
  • Firefox 70.0.1
  • Geckodriver 0.26.0
  • Селен 3.141.0
  • Python 3.5.3

Я пробовалограничение библиотек, которые я импортирую, и это не имеет изменений.

Я протестировал несколько разных веб-сайтов, например, просто google.com, и время ответа одинаково. Я могу загрузить эти сайты в течение нескольких секунд вручную через любой браузер, поэтому я думаю, что режим без головы будет быстрее. Скрипт не выдает никаких ошибок.

Журнал геккона

1573530232430   mozrunner::runner   

INFO    Running command: "/usr/bin/firefox" "-marionette" "-headless" "-foreground" "-no-remote" "-profile" "/tmp/rust_mozprofileKfYEBK"
*** You are running in headless mode.
1573530233337   addons.webextension.screenshots@mozilla.org 

WARN    Loading extension 'screenshots@mozilla.org': Reading manifest: Invalid extension permission: mozillaAddons
1573530233337   

addons.webextension.screenshots@mozilla.org 

WARN    Loading extension 'screenshots@mozilla.org': Reading manifest: Invalid extension permission: telemetry
1573530233338   

addons.webextension.screenshots@mozilla.org 

WARN    Loading extension 'screenshots@mozilla.org': Reading manifest: Invalid extension permission: resource://pdf.js/
1573530233338   

addons.webextension.screenshots@mozilla.org 

WARN    Loading extension 'screenshots@mozilla.org': Reading manifest: Invalid extension permission: about:reader*
1573530237793   Marionette  

INFO    Listening on port 36801
1573530237852   Marionette  

WARN    TLS certificate errors will be ignored for this session
[Parent 1707, Gecko_IOThread] 

WARNING: pipe error: Broken pipe: file /builds/worker/workspace/build/src/ipc/chromium/src/chrome/common/ipc_channel_posix.cc, line 728
1573530254051   

Marionette  

INFO    Stopped listening on port 36801

Я исследовал все предупреждения, перечисленные выше, со смешанными идеями о решениях.

«Ошибка конвейера» не всегда отображается в журналах, кажется случайной. Также необычно, как говорит хром, но я использую Firefox ...

Я неясен с ошибками разрешений даже после прочтения, некоторые говорят, что просто игнорировать их как неважные.

Есть предложения?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...