Nou*_*MEZ 8 python firefox selenium aws-lambda geckodriver
我目前正在 aws lambda (无服务器) 上开发一个网络抓取项目
技术人员:
蟒蛇3
硒3.14
geckodriver-V0.29
Firefox 80.0(en 模式无头)
这是我实现的代码(知道我事先配置了 firefox 和 geckodriver 的路径):
from selenium import webdriver
from selenium.webdriver.firefox.options import Options as FirefoxOptions
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
options = FirefoxOptions()
options.add_argument("--headless")
binary = FirefoxBinary("/tmp/bin/firefox/firefox")
webdriver.Firefox(options=options,executable_path="/tmp/bin/geckodriver", firefox_binary=binary)
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
Message: Process unexpectedly closed with status 255
: WebDriverException
Traceback (most recent call last):
File "/var/task/src/lambda_function.py", line 8, in lambda_handler
driver = WebDriverWrapper()
File "/var/task/src/webdriver_wrapper.py", line 116, in __init__
self._driver = webdriver.Firefox(options=options,executable_path="/tmp/bin/geckodriver", firefox_binary=binary)
File "/var/task/lib/selenium/webdriver/firefox/webdriver.py", line 174, in __init__
keep_alive=True)
File "/var/task/lib/selenium/webdriver/remote/webdriver.py", line 157, in __init__
self.start_session(capabilities, browser_profile)
File "/var/task/lib/selenium/webdriver/remote/webdriver.py", line 252, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/var/task/lib/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/var/task/lib/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: Process unexpectedly closed with status 255
Run Code Online (Sandbox Code Playgroud)
我搜索了论坛和文章,但没有找到解决方案。有没有人遇到过这种问题,如果可能的话如何纠正?
Mat*_*ini 16
这些天我也遇到了同样的问题,显然是因为 Firefox 可执行文件是直接从 docker 容器内的链接下载的,而该容器没有一组 Firefox 需要工作的库。因此,为了解决这个问题,我必须将以下行添加到Dockerfile中。
RUN apt-get update && apt-get install -y wget bzip2 libxtst6 libgtk-3-0 libx11-xcb-dev libdbus-glib-1-2 libxt6 libpci-dev && rm -rf /var/lib/apt/lists/*
Run Code Online (Sandbox Code Playgroud)
为了测试缺少哪些库,我连接到 docker 容器并尝试按以下方式运行 Firefox:
firefox -headless
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12802 次 |
| 最近记录: |