我正在尝试使用Selenium获取一些Web数据,以便在Python3脚本中以无头模式运行Firefox。我正在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()
执行时间从20s到30s
我尝试限制导入的库,但没有任何变化。
我已经测试了几个不同的网站,例如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 ...
即使阅读了权限错误,我也不清楚,有些人说只是忽略它们并不重要。
有什么建议吗?
谢谢