You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Crawlee教程:如何将当前处理的URL重新加入请求队列

如何将当前处理的URL重新加入请求队列并设置延迟抓取

要实现将正在处理的URL重新加入请求队列并延迟抓取,你可以直接在requestHandler中复用当前请求的地址,通过配置delay参数设置等待时间,同时绕过默认的URL去重机制。以下是调整后的实现方案:

关键修改说明

  • 复用当前请求URL:直接使用request.url获取正在处理的地址,避免硬编码带来的维护问题
  • 设置延迟时间:通过delay参数指定延迟毫秒数,控制再次抓取的时机
  • 强制加入队列:添加force: true参数,绕过Crawlee默认的URL去重逻辑,确保重复URL能被加入队列

完整代码示例

import { RequestQueue, CheerioCrawler, Configuration } from "crawlee";

const config = Configuration.getGlobalConfig();
config.set('persistStorage', false);
config.set('purgeOnStart', false);

const requestQueue = await RequestQueue.open();
await requestQueue.addRequest({ url: "https://www.google.com/" });

const crawler = new CheerioCrawler({
    requestQueue,
    async requestHandler({ request }) {
        console.log(`正在处理: ${request.url}`);
        console.log("处理抓取到的数据...");
        
        // 将当前URL重新加入队列,设置5秒延迟(5000毫秒)
        await crawler.addRequests([{
            url: request.url,
            delay: 5000,
            force: true
        }]);
    }
});

await crawler.run();

补充说明

你之前配置的persistStorage: false和purgeOnStart: false已经正确关闭了持久化存储,避免了缓存状态对重复抓取的干扰,无需额外调整。

内容的提问来源于stack exchange,提问作者Jaanis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 06:30:46