Безголовый chrome с тестом маяка через прокси - PullRequest
0 голосов
/ 17 июня 2020
• 1000 * и работает нормально, но иногда не работает на некоторых сайтах. Поэтому я хотел провести тест через прокси-сервер HTTPS с ротацией IP, и вот две проблемы, которые я не могу исправить. Во-первых, я не могу найти способ авторизации на прокси-сервере HTTPS, используя безголовый chrome. и вторая проблема заключается в том, что все вызовы, сделанные через бесплатный прокси, не работают, что приводит к сбою теста Lighthouse.

Вот текущее состояние кода

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 не работает? Как авторизоваться на https-прокси с помощью chromeLauncher?

Заранее благодарим за любую помощь, которую может предоставить.

...