javascript Puppeteer选项卡仅在 www.example.com (Aw,Snap!STATUS_ACCESS_VIOLATION)

8fq7wneg  于 2023-04-28  发布在  Java
关注(0)|答案(1)|浏览(118)

我正在使用puppeteer从Youtube的搜索结果中获取截图。不幸的是,我无法让代码在此页面上工作。任何其他页面(也包括youtube上的其他页面)。我在使用'https://www.example时也遇到了同样的问题 www.example.com '作为url。这是我正在使用的代码。

const browser = await puppeteer.launch({ headless: false, devtools: true });
    const page = await browser.newPage();
    await page.setUserAgent(
      "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36"
    );
    await page.setViewport({ width: 1920, height: 1080 });

    await page.goto("https://www.youtube.com/results?search_query=isoleren", {
      waitUntil: "networkidle2", // 
    });

    await page.screenshot({ path: "./screenshot.png" });

这是浏览器告诉我的。翻译它说:
'查看页面时出错。错误代码11.More info.

其他链接:https://www.youtube.com/@gElement工作。查看截图的结果():

我试过:

  • 无头vs非无头
  • waitUntil: load
  • timeout 0,这意味着无限期。但这不是一个超时问题。
z0qdvdin

z0qdvdin1#

它是一个bug,所以为了让你的代码工作,你必须把你的puppeteer版本减少到^18.2.1- * 我试过的版本 *
package.json

"puppeteer": "^18.2.1",
const puppeteer = require("puppeteer");

let browser;
(async () => {
    const browser = await puppeteer.launch({ headless: false, devtools: true });
    const page = await browser.newPage();
    await page.setUserAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36" );
    await page.setViewport({ width: 1920, height: 1080 });

    async function youtube(search = 'isoleren') {

        let url = `https://www.youtube.com/results?search_query=${search}`;

        await page.waitForSelector(`body`);
        await page.goto(url, { waitUntil: "networkidle2", timeout: 5000 });        
        await page.screenshot({path: 'youtube.png'})
        await browser.close();

    }

    await youtube();

})().catch(err => console.error(err)). finally(() => browser ?. close());

相关问题