我使用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()
假设您希望将 chrome 扩展加载到您的 puppeteer 浏览器中。
chrome://extensions/
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}`,
],
});
}
我知道这是一个旧线程,以防万一有人仍然遇到这个问题, 我使用
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)
...