Я пытаюсь получить некоторые веб-данные, используя 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 ...
Я неясен с ошибками разрешений даже после прочтения, некоторые говорят, что просто игнорировать их как неважные.
Есть предложения?
Спасибо