如何使用 puppeteer.connect() 方法加载扩展

问题描述 投票:0回答:2

我使用gologin服务。 gologin 是一种浏览器反检测服务,我可以在其中伪造我的浏览器身份/可以管理浏览器指纹。 这样我就可以自由地进行网络抓取而不被发现。

在这种情况下,我希望能够使用 puppeteer.connect() 方法将我的扩展加载到该浏览器中。

这是代码:


const puppeteer = require('puppeteer-core');
const GoLogin = require('gologin');

(async () => {
  const GL = new GoLogin({
    token: 'yU0token',
    profile_id: 'yU0Pr0f1leiD',
  });

  const { status, wsUrl } = await GL.start();
  const browser = await puppeteer.connect({
    browserWSEndpoint: wsUrl.toString(),
    ignoreHTTPSErrors: true,
  });

  const page = await browser.newPage();
  await page.goto('https://myip.link/mini');
  console.log(await page.content());
  await browser.close();
  await GL.stop();
})();



I don't know how. please help me, so i can load my extension using this puppeteer.connect()
puppeteer
2个回答
0
投票

假设您希望将 chrome 扩展加载到您的 puppeteer 浏览器中。

  1. 查找 chrome-extension 工作目录 Chrome 在哪里存储扩展程序?
  2. 前往
    chrome://extensions/
  3. 查找您的分机 ID
  4. 示例代码:

const puppeteer = require('puppeteer-core');

const MY_EXTENSION_PATH = '~/Library/Application Support/Google/Chrome/Default/Extensions/cdockenadnadldjbbgcallicgledbeoc/0.3.38_0'
async function loadExtension() {
  return puppeteer.launch({
    headless: 0,
    args: [
      `--disable-extensions-except=${MY_EXTENSION_PATH}`,
      `--load-extension=${MY_EXTENSION_PATH}`,
    ],
  });
}


0
投票

我知道这是一个旧线程,以防万一有人仍然遇到这个问题, 我使用

puppeteer-extra
而不是
puppeteer-core

import puppeteer from 'puppeteer-extra';
import AdblockerPlugin from 'puppeteer-extra-plugin-adblocker'
...
const plugin = AdblockerPlugin(...)
puppeteer.use(plugin)
const browser = await puppeteer.connect({
  browserWSEndpoint: wsUrl.toString(),
  ignoreHTTPSErrors: true,
});
const page = await browser.newPage();
// in case if still not working, register it manually
plugin.onPageCreated(page)
...
© www.soinside.com 2019 - 2024. All rights reserved.