无头铬代理服务器设置

任何人都可以帮助我设置代理服务器无头铬,而在这里提到的Node.js使用灯塔铬启动器

const launcher = new ChromeLauncher({ port: 9222, autoSelectChrome: true, // False to manually select which Chrome install. additionalFlags: [ '--window-size=412,732', '--disable-gpu', '--proxy-server="IP:PORT"', headless ? '--headless' : '' ] }); 

但是,上面的脚本根本不打我的代理服务器。 Chrome似乎回退到目标网站的DIRECT://连接。

另一个讨论在无头镀铬的情况下使用HTTP / HTTPS代理服务器的资源是这样的 。 但它没有给出任何如何使用Node.js的例子。

我试过它使用普通的exec ,它工作得很好,这是我的代码片段:

 const exec = require('child_process').exec; function launchHeadlessChrome(url, callback) { // Assuming MacOSx. const CHROME = '/Users/h0x91b/Desktop/Google\\ Chrome\\ Beta.app/Contents/MacOS/Google\\ Chrome'; exec(`${CHROME} --headless --disable-gpu --remote-debugging-port=9222 --proxy-server=127.0.0.1:8888 ${url}`, callback); } launchHeadlessChrome('https://www.chromestatus.com', (err, stdout, stderr) => { console.log('callback', err, stderr, stdout) }); 

然后我导航到http:// localhost:9222,并在我看到的开发人员工具: 在这里输入图像描述

代理连接错误,这是好的,因为我没有在这个端口上的代理,但这意味着Chrome试图通过代理连接…

BTW Chrome版本是59。

检查了源代码https://github.com/GoogleChrome/lighthouse/blob/master/chrome-launcher/chrome-launcher.ts#L38-L44

我在这里看到没有additionalFlags chromeFlags ,只有chromeFlags尝试使用它…