首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在本地找到预期的浏览器铬

无法在本地找到预期的浏览器铬
EN

Stack Overflow用户
提问于 2021-06-20 00:10:06
回答 10查看 43.7K关注 0票数 23

此流星代码使用“木偶师8.0.0”、“木偶师-核心10.0.0”、“木偶师-额外3.1.18”和“木偶师-外挂-隐形2.7.8",给出了以下错误:

错误:无法在本地找到预期的浏览器(chrome)。运行npm install下载正确的铬版本(884014)。

尝试了"npm安装“,但没有结果。在线阅读,尝试从package.json依赖项中删除“傀儡-核心”:"^10.0.0“,但没有效果。

任何帮助都是徒劳无功的。谢谢

代码语言:javascript
复制
const puppeteer = require('puppeteer-extra');
const nameH = require('./NameH');

const puppeteerOptions = {
    headless: true,
    ignoreHTTPSErrors: true,
    args: ['--no-sandbox', '--single-process', '--no-zygote', '--disable-setuid-sandbox']
}

let browser;
let pageNameH;

const init = async () => {
    const StealthPlugin = require('puppeteer-extra-plugin-stealth');
    console.log('1')         //>>>>>>>>>>>> Prints 1
    puppeteer.use(StealthPlugin());
    console.log('2')         //>>>>>>>>>>>> Prints 2
    
    browser = await puppeteer.launch(puppeteerOptions);
    console.log('3') //>>>>>>>>> DID NOT PRINT <<<<<<<<<<<<<<<
    pageNameH = await browser.newPage();
    console.log('4')

    await pageNameH.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36');
    await pageNameH.setViewport({ width: 1366, height: 768 });
    await pageNameH.setRequestInterception(true);
    blockResources(pageNameH);
}

const blockResources = page => {
    page.on('request', (req) => {
    if (req.resourceType() == 'stylesheet' || req.resourceType() == 'font' || req.resourceType() == 'image') {
        req.abort();
    }
    else {
        req.continue();
    }
    });
}


export const abc = async (nm, loc) => {
    try {
    console.log('name try')       //>>>>>>>>>>>> Prints "name try"
    if (!(browser && pageNameH))
        await init();
    //use "required" nameh here

    } catch (error) { // print the error <<<<<<<<<<<<<<<<<<<<<<<<<
    console.log("Could not launch Puppeteer or open a new page.\n" + error);
    if (browser && browser.close === 'function') await browser.close();
    }
}
代码语言:javascript
复制
// included in package.json
"dependencies": {
    "@babel/runtime": "^7.11.2",
    "axios": "^0.21.1",
    "check": "^1.0.0",
    "cheerio": "^1.0.0-rc.6",
    "jquery": "^3.5.1",
    "meteor-node-stubs": "^1.0.1",
    "nightmare": "^3.0.2",
    "pending-xhr-puppeteer": "^2.3.3",
    "puppeteer": "^8.0.0",
    "puppeteer-core": "^10.0.0",
    "puppeteer-extra": "^3.1.18",
    "puppeteer-extra-plugin-adblocker": "^2.11.11",
    "puppeteer-extra-plugin-block-resources": "^2.2.9",
    "puppeteer-extra-plugin-stealth": "^2.7.8"
},
EN

回答 10

Stack Overflow用户

发布于 2021-08-11 02:12:35

也许你可以试试这个,它适用于linux(centos)、木偶师(10.2.0)。

代码语言:javascript
复制
cd ./node_modules/puppeteer
npm run install

它将把铬下载到./node_node/puppeteer/..local chromium。

票数 58
EN

Stack Overflow用户

发布于 2021-06-27 18:20:50

我也有同样的问题。我检查了我的env变量,即使PUPPETEER_SKIP_CHROMIUM_DOWNLOAD设置为false,它仍然不能工作。在我删除变量(为mac未设置PUPPETEER_SKIP_CHROMIUM_DOWNLOAD )之后,它就正常工作了。

有关受养人:

代码语言:javascript
复制
  "dependencies": {
    "chrome-aws-lambda": "^10.0.0",
    "puppeteer-core": "^10.0.0",
  },
  "devDependencies": {
    "puppeteer": "^10.0.0",
  }

发射铬:

代码语言:javascript
复制
    import chromium from "chrome-aws-lambda";

    const browser = await chromium.puppeteer.launch({
        executablePath: await chromium.executablePath,
    });
票数 7
EN

Stack Overflow用户

发布于 2021-09-15 10:18:27

我也有过同样的问题。对我起作用的是指定作为executablePath木偶引导者发射选项,完全路径到本地铬使用的木偶。

就像这样:

代码语言:javascript
复制
const launchOptions = {
  // other options (headless, args, etc)
  executablePath: '/home/jack/repos/my-repo/node_modules/puppeteer/.local-chromium/linux-901912/chrome-linux/chrome'
}

正如在另一个答案中所指出的,引用铬本地二进制文件似乎也是可行的,但我认为这是一个更糟的解决方案,因为Puppeteer是保证只适用于本地捆绑版本的铬

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68051648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档