木偶系统要求

时间:2020-07-10 14:10:34

标签: javascript node.js ubuntu puppeteer digital-ocean

我今天将脚本投入生产,并删除了我的API,我相信我将不得不使用单独的服务器。 那么,每小时应使用什么服务器配置1000个请求?

复制步骤 在digitalOcean上设置一台便宜的机器,并同时运行5次。

我的服务器:

  • 木偶版本:最新
  • 平台/操作系统版本: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 :(得分:0)

所以,我在网上找不到任何信息。

我决定在具有2G RAM的Google Cloud Functions上使用它