puppeteer - 如何使用 puppeteer.connect() 方法加载扩展
问题描述
我使用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-extension 加载到您的 puppeteer 浏览器中。
- 查找 chrome-extension 工作目录Chrome 在哪里存储扩展程序?
- 通过转到找到您的分机 ID
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}`,
],
});
}
推荐阅读
- apache-kafka - 如何让 Vertica-Kafka 调度程序与 Avro 模式注册表一起使用?
- php - PHP 给出默认错误,但没有给出我的自定义错误 - 错误地说文件超出限制
- java - 在 Mac 上编译 LWJGL jar,'java.nio.FloatBuffer.flip()Ljava/nio/FloatBuffer;'。在 Eclipse 中工作,但在导出时不工作
- php - 无法从 Amazon SES smtp 发送电子邮件
- python-3.x - 我有很多神经元的 tiff 文件。我想知道是否有一种方法可以读取神经元所在的光强度并将该数据导入文件
- firebase - 在 Firebase 重写的上下文中,“源”到底是什么?
- c# - 如何生成矢量二维码并将其显示在 wpf 图像控件中?
- swift - 不确定的进度指示器没有动画
- docker - 如何正确登录以在 Gitlab-ci 中使用来自 GCR 的私有图像?
- php - 我想在 Laravel 中的任何进程之前将 html 打印到浏览器