有没有办法在 Puppeteer for Firefox 中使用代理?
Is there a way to use a proxy in Puppeteer for Firefox?
有没有办法将 Puppeteer 配置为在 Firefox 中使用代理,而无需手动调整操作系统的代理设置?
我可以在 Chrome 中使用命令行参数 args: [ '--proxy-server=http://0.0.0.0:0000' ]
完成此操作,但 Firefox 似乎没有此功能。
很遗憾,Firefox 中没有 'proxy-server' 参数。
但是,您可以拦截请求并使用 puppeteer-proxy 库设置代理。
这是一个example。
import puppeteer from 'puppeteer';
import { proxyRequest } from 'puppeteer-proxy';
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.setRequestInterception(true);
page.on('request', async (request) => {
await proxyRequest({
page,
proxyUrl: 'http://127.0.0.1:3000',
request,
});
});
await page.goto('http://gajus.com');
})();
它也适用于 Chrome 和 Firefox。
对于 Yevhen 的示例,您可以使用 import 语句 运行 进入问题。相反,我建议使用以下内容:
const puppeteer = require('puppeteer');
const { proxyRequest } = require('puppeteer-proxy');
Firefox 中的代理可以通过首选项进行配置。这里列出了这些及其默认值:
pref("network.proxy.ftp", "");
pref("network.proxy.ftp_port", 0);
pref("network.proxy.http", "");
pref("network.proxy.http_port", 0);
pref("network.proxy.ssl", "");
pref("network.proxy.ssl_port", 0);
pref("network.proxy.socks", "");
pref("network.proxy.socks_port", 0);
pref("network.proxy.socks_version", 5);
pref("network.proxy.proxy_over_tls", true);
pref("network.proxy.no_proxies_on", "");
从 puppeteer 存储库中实际使用它们 install the official puppeteer
node.js package with Firefox as selected product (note that puppeteer-firefox
is deprecated). Then preferences can be specified via extraPrefsFirefox
for the call to puppeteer.launch()
. Here an example for the necessary steps。
有没有办法将 Puppeteer 配置为在 Firefox 中使用代理,而无需手动调整操作系统的代理设置?
我可以在 Chrome 中使用命令行参数 args: [ '--proxy-server=http://0.0.0.0:0000' ]
完成此操作,但 Firefox 似乎没有此功能。
很遗憾,Firefox 中没有 'proxy-server' 参数。
但是,您可以拦截请求并使用 puppeteer-proxy 库设置代理。
这是一个example。
import puppeteer from 'puppeteer';
import { proxyRequest } from 'puppeteer-proxy';
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.setRequestInterception(true);
page.on('request', async (request) => {
await proxyRequest({
page,
proxyUrl: 'http://127.0.0.1:3000',
request,
});
});
await page.goto('http://gajus.com');
})();
它也适用于 Chrome 和 Firefox。
对于 Yevhen 的示例,您可以使用 import 语句 运行 进入问题。相反,我建议使用以下内容:
const puppeteer = require('puppeteer');
const { proxyRequest } = require('puppeteer-proxy');
Firefox 中的代理可以通过首选项进行配置。这里列出了这些及其默认值:
pref("network.proxy.ftp", "");
pref("network.proxy.ftp_port", 0);
pref("network.proxy.http", "");
pref("network.proxy.http_port", 0);
pref("network.proxy.ssl", "");
pref("network.proxy.ssl_port", 0);
pref("network.proxy.socks", "");
pref("network.proxy.socks_port", 0);
pref("network.proxy.socks_version", 5);
pref("network.proxy.proxy_over_tls", true);
pref("network.proxy.no_proxies_on", "");
从 puppeteer 存储库中实际使用它们 install the official puppeteer
node.js package with Firefox as selected product (note that puppeteer-firefox
is deprecated). Then preferences can be specified via extraPrefsFirefox
for the call to puppeteer.launch()
. Here an example for the necessary steps。