我在 Google App Engine 上使用 puppeteer 和 Node.JS
每当我在应用程序引擎上运行 puppeteer 时,我都会遇到一条错误消息
导航失败,因为浏览器已断开连接!
这在本地环境中工作正常,所以我猜测这是应用程序引擎的问题。
const browser = await puppeteer.launch({
ignoreHTTPSErrors: true,
headless: true,
args: ["--disable-setuid-sandbox", "--no-sandbox"],
});
这是我的应用程序引擎的 app.yaml 文件
runtime: nodejs12
env: standard
handlers:
- url: /.*
secure: always
script: auto
- 编辑 -
当我添加时它起作用--disable-dev-shm-usage
争论,但总是超时。这是我的代码。
const browser = await puppeteer.launch({
ignoreHTTPSErrors: true,
headless: true,
args: [
"--disable-gpu",
"--disable-dev-shm-usage",
"--no-sandbox",
"--disable-setuid-sandbox",
"--no-first-run",
"--no-zygote",
"--single-process",
],
});
const page = await browser.newPage();
try {
const url = "https://seekingalpha.com/market-news/1";
const pageOption = {
waitUntil: "networkidle2",
timeout: 20000,
};
await page.goto(url, pageOption);
} catch (e) {
console.log(e);
await page.close();
await browser.close();
return resolve("error at 1");
}
try {
const ulSelector = "#latest-news-list";
await page.waitForSelector(ulSelector, { timeout: 30000 });
} catch (e) {
// ALWAYS TIMEOUTS HERE!
console.log(e);
await page.close();
await browser.close();
return resolve("error at 2");
}
...