在 Linux 环境只使用 Pyppeteer 时,经常遇到 “browser closed unexpectedly” 错误。这通常是因为缺少必要的系统依赖库或未正确配置沙箱模式。

1. 安装必要的系统依赖

Puppeteer (Chrome/Chromium) 需要一些特定的库才能在 Linux 上运行。

对于 CentOS/RHEL 系统:

1
2
3
yum install pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 \
libXext.x86_64 libXi.x86_64 libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 \
libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 -y

对于 Ubuntu/Debian 系统(参考):

1
sudo apt-get install -y libgbm-dev

2. 禁用沙箱模式

在 Root 用户下运行或在某些容器环境中,Chromium 的沙箱功能可能会导致崩溃。需要在启动时添加 --no-sandbox 参数。

1
2
3
4
browser = await launch(
headless=True,
args=['--disable-infobars', '--no-sandbox']
)