我陷入了一个问题。我需要在 AWS lambda 上做一些抓取工作,所以我按照下面提到的博客及其代码库作为起点,这非常有帮助,并且在运行时环境:Python 3.6 的 AWS lambda 上对我来说工作得很好
https://manivannan-ai.medium.com/python-selenium-on-aws-lambda-b4b9de44b8e1 https://manivannan-ai.medium.com/python-selenium-on-aws-lambda-b4b9de44b8e1
https://github.com/ManivannanMurugavel/selenium-python-aws-lambda https://github.com/ManivannanMurugavel/selenium-python-aws-lambda
然后我遇到了一个问题,即使用上面使用的示例代码无法单击下载文件。浏览互联网后,我发现 62 版本的 chrome 驱动程序和 chromium 二进制文件不支持此功能。所以我开始寻找更高版本的二进制文件。我已经使用了几个二进制文件(chrome 驱动程序和 chromium),显然是兼容的对,但对于所有这些,我无法获得成功并出现以下相同的错误。
我已经尝试过此存储库中给出的二进制文件,但对我不起作用。
https://github.com/vittorio-nardone/selenium-chromium-lambda https://github.com/vittorio-nardone/selenium-chromium-lambda
这些是我尝试过不同版本但对我不起作用的其他来源。
https://chromium.cypress.io/ https://chromium.cypress.io/
https://github.com/adieuadieu/serverless-chrome/releases https://github.com/adieuadieu/serverless-chrome/releases
"errorMessage": "Message: unknown error: Chrome failed to start: exited abnormally.\n (chrome not reachable)\n (The process started from chrome location /opt/chromium is no longer running, so ChromeDriver is assuming that Chrome has crashed.)\n",
互联网/论坛上的人们说这个错误是由于 chrome 驱动程序和 chromium 二进制文件之间的版本不兼容造成的。但我仔细考虑了这一点,但仍然没有成功。请指导我如何让它发挥作用。提前致谢。
您可以尝试添加以下行:
chrome_options.add_argument('--disable-dev-shm-usage')
这忽略了/dev/shm
Chrome 用来存储文件的目录。
由于该目录在 aws lambda 上较小,因为它是一个 docker 容器,因此我们可以禁用它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)