我今天将脚本投入生产,并删除了我的API,我相信我将不得不使用单独的服务器。 那么,每小时应使用什么服务器配置1000个请求?
复制步骤 在digitalOcean上设置一台便宜的机器,并同时运行5次。
我的服务器:
我正在运行的代码
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
答案 0 :(得分:0)
所以,我在网上找不到任何信息。
我决定在具有2G RAM的Google Cloud Functions上使用它