这几天来,我一直在为自己的问题而受伤,而我对nodejs的不熟练也无济于事。
我目前在nodejs中有一个脚本,并且运行良好,但有时在某些网站上不起作用。因此,我想通过具有ip旋转功能的HTTPS代理进行测试,这带来了两个我无法解决的问题。第一个是我找不到使用无头Chrome认证HTTPS代理的方法。第二个问题是通过免费代理进行的所有呼叫均无法正常工作,从而使灯塔测试失败了。
这是当前代码状态
const chromePath = require.resolve(
"@serverless-chrome/lambda/dist/headless-chromium"
);
const lighthouse = require('lighthouse');
const chromeLauncher = require('chrome-launcher');
function launchChromeAndRunLighthouse(url, opts, config = null) {
return chromeLauncher.launch({chromeFlags: opts.chromeFlags, chromePath: chromePath}).then(chrome => {
opts.port = chrome.port;
return lighthouse(url, opts, config).then(results => {
return chrome.kill().then(() => results)
});
});
}
const opts = {
chromeFlags: [
"--headless",
"--disable-dev-shm-usage",
"--disable-gpu",
"--no-zygote",
"--no-sandbox",
"--single-process",
"--hide-scrollbars",
"--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36",
"--proxy-server=https://37.59.61.18:8080"
]
};
const start = async () => {
const url = 'https://www.somewebsite.com';
if (url === undefined) {
console.log("no url provided");
} else {
console.log(`Requested lighthouse analysis for "${url}"`);
const results = await launchChromeAndRunLighthouse(url, opts);
console.log({
'lighthouse': results.lhr,
'html': results.artifacts.MainDocumentContent
});
}
};
start();
为什么使用--proxy-server
选项进行的呼叫失败?
如何使用chromeLauncher对https代理进行身份验证?
预先感谢任何人都可以提供的帮助。