今天,我学习了名为 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())
Run Code Online (Sandbox Code Playgroud)
我有:
pyppeteer.errors.BrowserError: Browser closed unexpectedly:
Run Code Online (Sandbox Code Playgroud)
Bai*_*ong 29
这是因为pyppeteer不会安装所需的依赖项chromium。所以你应该自己安装它们。
执行ldd ~/.local/share/pyppeteer/local-chromium/588429/chrome-linux/chrome | grep 'not found'以获取丢失的依赖项:
输出示例:
libXcursor.so.1 => not found
libnss3.so => not found
libnssutil3.so => not found
libsmime3.so => not found
libcups.so.2 => not found
libXss.so.1 => not found
libpangocairo-1.0.so.0 => not found
libpango-1.0.so.0 => not found
libcairo.so.2 => not found
libatk-1.0.so.0 => not found
libatk-bridge-2.0.so.0 => not found
libgtk-3.so.0 => not found
libgdk-3.so.0 => not found
libgdk_pixbuf-2.0.so.0 => not found
Run Code Online (Sandbox Code Playgroud)
你可以一一安装它们,或者安装google-chrome它的依赖项。
对于 ubuntu/debian:
libXcursor.so.1 => not found
libnss3.so => not found
libnssutil3.so => not found
libsmime3.so => not found
libcups.so.2 => not found
libXss.so.1 => not found
libpangocairo-1.0.so.0 => not found
libpango-1.0.so.0 => not found
libcairo.so.2 => not found
libatk-1.0.so.0 => not found
libatk-bridge-2.0.so.0 => not found
libgtk-3.so.0 => not found
libgdk-3.so.0 => not found
libgdk_pixbuf-2.0.so.0 => not found
Run Code Online (Sandbox Code Playgroud)
再次执行ldd ~/.local/share/pyppeteer/local-chromium/588429/chrome-linux/chrome | grep 'not found',可能会漏掉一些依赖:
libXss.so.1 => not found
Run Code Online (Sandbox Code Playgroud)
然后执行apt install libxss1安装遗漏的libXss.so.1
额外的
如果你想截图,也许你需要一些中日韩字体:
sudo apt install fonts-wqy-zenhei
Vla*_*mir 14
我得到了同样的结果,当我尝试从终端启动 chromium 时,我注意到它需要在没有沙箱参数的情况下运行,所以只需添加它,您的代码就可以工作:
browser=await launch(options={'args': ['--no-sandbox']})
Run Code Online (Sandbox Code Playgroud)
小智 7
对我来说,我在 docker 中运行,结果是铬没有正确安装所需的库:https : //techoverflow.net/2018/06/05/how-to-fix-puppetteer-error-while-加载共享库-libx11-xcb-so-1-cannot-open-shared-object-file-no-such-file-or-directory/
| 归档时间: |
|
| 查看次数: |
6280 次 |
| 最近记录: |