我正在尝试使用puppeteer对网站进行查询,但出现错误:
Error: Failed to launch chrome!
[0711/174138.253701:ERROR:zygote_host_impl_linux.cc(89)] Running as root without --no-sandbox is not supported. See https://crbug.com/638180.
我试图给以下参数
puppeteer.launch(args: ['--disable-setuid-sandbox'])
puppeteer.launch(args: ['--no-sandbox'])
但是它不起作用。看来是浏览器问题。我不知道该怎么办
我的代码:
const puppeteer = require('puppeteer');
const url = "https://www.google.com.ar";
(async () => {
try{
const navegador = await puppeteer.launch({args: ['--no-sandbox', '--disable-setuid-sandbox']}); //Lanzo el chrome
const pestaña = await navegador.newPage();//abro una nueva pestaña
await pestaña.goto(url); //paso la url
let tabla = await pestaña.evaluate(() => {
const titulos = [
...document.querySelectorAll(".descrip_container")
].map((map_titulo) => map_titulo.innerText);
//los "..." hace que en la pestaña se abra la consola
const precios = [
...document.querySelectorAll(".atg_store_newPrice")
].map((map_precio) => map_precio.innerText);
return productos.map((titulo, i) => ({titulos: titulo, precios: precios[i]}));
})
console.log(tabla);
await navegador.close();
}
catch(error){
console.log(error);
}
})();
答案 0 :(得分:1)
您似乎忘记了将args
放在对象中:
const browser = await puppeteer.launch({
args: ['--no-sandbox', '--disable-setuid-sandbox'],
});
答案 1 :(得分:0)
我也有这个问题。确保您已更新到 nodejs 版本 14。如果它不起作用,请安装缺少的软件包(请参阅如何在此处安装它们:https://medium.com/@ssmak/how-to-fix-puppetteer-error-while-loading-shared-libraries-libx11-xcb-so-1-c1918b75acc3)。除了添加 Yevhen 上面提到的其他参数 (args)。