问题
程序报错:
Failed to connect to browser port: http://127.0.0.1:57899/json/version
原因
虽然pyppeteer在首次启动时会自动下载chrome浏览器,但是并不会安装相关的依赖项,需要手动安装。
解决
在ubuntu或者debian上,可以参考 BrowserError: Failed to connect to browser port #82 这里,安装相关依赖项。
本人在centos最小化安装上测试,需要安装:
- libXcomposite
- libXcursor
- libXi
- libXtst
- libXScrnSaver
- libXrandr
- atk
- at-spi2-atk
- gtk3
sudo yum install libXcomposite libXcursor libXi libXtst libXScrnSaver libXrandr atk at-spi2-atk gtk3 -y
安装上述依赖后,程序正常运行。
另外需注意,如果使用root用户调用pyppeteer,则需要在 launch
中增加参数:--no-sandbox
才能正常运行。
补充
由于我自己的测试环境并非完全干净,所以有可能有遗漏。
你可以在路径: ~/.pyppeteer/local-chromium/xxxxxx/chrome-linux/
下找到 pyppeteer 所使用的 chrome 。通过直接启动这个 chrome 观察报错以确定它还缺少哪些依赖。逐个安装即可。
事实上,我自己就是这样测试的,逐个发现并安装,直到 chrome 能够正常启动为止。
原文发布于 pyppeteer 无法连接到浏览器