Системные требования Puppeteer - PullRequest
0 голосов
/ 10 июля 2020

Сегодня я запустил сценарий в производство и отказался от своего API, полагаю, мне придется использовать отдельный сервер. Итак, какую конфигурацию сервера я должен использовать для 1000 запросов в час? * Мой сервер:

  • Версия Puppeteer: последняя
  • Версия платформы / ОС: Ubuntu 16
  • Node.js версия: 10

Код, который я запускал

async function getContent(url) {
  console.log("getContent")
  const browser = await puppeteer.launch({ headless: true, args:[`--window-size=${1800},${1200}`, '--no-sandbox', '--disable-setuid-sandbox'] });
  const page = await browser.newPage();
  await page.goto(url,{waitUntil: 'load', timeout: 0});

  var times = 1;
  let timer = setInterval(() => {
    console.log(times++)
    if (times > 10) clearInterval(timer);
  }, 1000);

  await page.waitFor(10000)
  return await page.content();
}

async function searchdata(content, url) {
  console.log("searchdata")
  const $ = cheerio.load(content);

  let imoveis = [];
  let paginas;
  let quantidadeEncontrada = $(".js-title .js-total-records").text().trim()

  if(quantidadeEncontrada<7){
    return{
      result:false,
      message:"Não encontramos um número de amostras maiores do que 8",
      quantidadeEncontrada:quantidadeEncontrada,
      link:url
    };
  }

  //Não pode ser arrow function porque perdemos o this do elemento :D
  $(".results-list > div").each(function () {
    if(imoveis.length<quantidadeEncontrada){
      // let area = $(this).find(".property-card__container .property-card__details .property-card__detail-area .property-card__detail-value").text();
      let valorVenda = $(this).find(".property-card__values .property-card__price").text();
      let link = $(this).find(".property-card__header a").attr("href");
      valorVenda = valorVenda.replace("R$", "").trim().replace(/\./g, "");
      if(valorVenda.trim()*1){
        imoveis.push({
          valorVenda: parseInt(valorVenda.trim()),
          link: "https://www.vivareal.com.br" + link
        });
      }
      // paginas = $(".pagination__wrapper li[data-type]").length
    }
  });

  return {
    result: true,
    imoveis: imoveis,
    amostrasQuantidade:imoveis.length,
    paginas: paginas,
    quantidadeEncontrada:quantidadeEncontrada * 1,
    url:url
  }
}

Я также создал проблему в репозитории кукловода: https://github.com/puppeteer/puppeteer/issues/6199

1 Ответ

0 голосов
/ 17 июля 2020

Итак, я не могу найти никакой информации в Интернете.

Я решил использовать его в Google Cloud Functions с 2 ГБ оперативной памяти

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...