今天,当我运行代码时,我学习了一个名为pyppeteer的库
import asyncio
from pyppeteer import launch
async def main():
browser = await launch(options={'devtools': True, 'headless': False})
page = await browser.newPage()
await page.goto('http://example.com')
await page.screenshot({'path': 'baidu.png'})
await browser.close()
asyncio.get_event_loop().run_until_complete(main())
我知道了
pyppeteer.errors.BrowserError: Browser closed unexpectedly:
答案 0 :(得分:3)
对我来说,我在docker中运行,结果是Chrome没有正确安装所需的库:https://techoverflow.net/2018/06/05/how-to-fix-puppetteer-error-while-loading-shared-libraries-libx11-xcb-so-1-cannot-open-shared-object-file-no-such-file-or-directory/
答案 1 :(得分:0)
我也一样,当我尝试从终端启动Chrome时,我注意到它需要在没有沙箱arg的情况下运行,因此只需添加它,您的代码就会起作用:
browser=await launch(options={'args': ['--no-sandbox']})
答案 2 :(得分:0)
我认为我们需要安装chrome的驱动程序。
sudo apt-get install chromium-chromedriver
那是我正在解决的问题
答案 3 :(得分:0)
要确切了解您可以在python3 cmd上运行这两个命令的原因:
from pyppeteer.launcher import Launcher
' '.join(Launcher().cmd)
并查看结果。
但是主要是因为您以root用户身份运行python脚本。您要么需要添加“ --no-sandbox”配置,要么仅以另一个用户(任何用户而不是root用户)的身份运行脚本。