Сегодня я запустил сценарий в производство и отказался от своего 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