Apify's legacy Crawler有一个randomWaitBetweenRequests
选项。
此选项强制搜寻器确保打开两个网页之间的时间间隔最短,以防止其使目标服务器超载。
Apify Actor是否具有类似的设置?如果是这样,它将如何影响Actor Units的计算?
答案 0 :(得分:1)
apify/web-scraper中没有类似的选项,这些选项应替代旧版爬网程序选项。
但是有一种方法可以在pageFunction中自己实现。您可以简单地使用context.waitFor()函数,并以ms为单位传递随机时间。
async function pageFunction(context) {
const { request, log, jQuery } = context;
// To be able to use jQuery as $, one needs save it into a variable
// and select the inject jQuery option. We've selected it for you.
const $ = jQuery;
const title = $('title').text();
log.info(`URL: ${request.url} TITLE: ${title}`);
// This waits time in ms, which getRandomWait returns.
await context.waitFor(getRandomWait());
// To save data just return an object with the requested properties.
return {
url: request.url,
title
};
}
如果您想在apify /网络抓取工具中使用此选项,则可以在GitHub repo上提交问题。