在Apify中,可以通过设置请求之间的延迟来控制爬取的速度。以下是一个示例代码,演示如何使用延迟来按照一定速度发送请求:
const Apify = require('apify');
Apify.main(async () => {
const requestQueue = await Apify.openRequestQueue();
await requestQueue.addRequest({ url: 'http://example.com/page1' });
const crawler = new Apify.CheerioCrawler({
requestQueue,
handlePageFunction: async ({ request, $ }) => {
// 在这里处理页面,根据需要进行操作
// 在处理完页面后,等待一段时间再发送下一个请求
await Apify.utils.sleep(1000); // 等待1秒钟
// 添加下一个请求到请求队列
await requestQueue.addRequest({ url: 'http://example.com/page2' });
},
});
await crawler.run();
});
在上述示例中,我们使用了Apify.utils.sleep()
函数来添加一个延迟。这个函数会让脚本在等待指定的毫秒数后再继续执行。
在handlePageFunction
中,处理完页面后等待1秒钟,然后再发送下一个请求。这样可以控制爬取的速度,避免对目标网站造成过大的压力。
你可以根据需要调整Apify.utils.sleep()
函数中的参数来设置不同的延迟时间。
上一篇:Apify指纹欺骗