-
// demo 1
const app = createCrawl({
enableRandomFingerprint: true,
intervalTime: 3e3,
});
(function send() {
app.crawlHTML('https://example.com').then((res) => {
send();
});
})(); // demo 2
(function send() {
app.crawlHTML({
targets: ['https://example.com'],
intervalTime: 3e3,
}).then((res) => {
send();
});
})(); 这2个demo都没法实现间隔一段时间后请求,有时候我需要重复发送同一个请求。 |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 2 replies
-
第一次爬取目标是不会触发间隔时间,这个文档有提到。 import { createCrawl } from 'x-crawl'
const crawlApp = createCrawl({ intervalTime: { max: 2000, min: 1000 } })
crawlApp.crawlPage(['https://example.com-1', 'https://example.com-2'])
crawlApp.crawlPage(['https://example.com-3']) 1 和 3 都不会触发间隔,2 就会在间隔一段时间后才执行。因为每个爬取 API 的爬虫任务都是由自己内部控制的,不是由爬虫实例控制的。 |
Beta Was this translation helpful? Give feedback.
-
在阅读文档时有不解之处也可以借用 Page AI 帮忙,参考:https://coder-hxl.github.io/x-crawl/cn/guide/quick-start#extension-program |
Beta Was this translation helpful? Give feedback.
-
请问在获取分页数据时,事先不知道有多少页,所以无法提前定义好 targets,这种情况下还能使用间隔时间的功能吗? |
Beta Was this translation helpful? Give feedback.
我大概理解了,所以 intervalTime 控制的是爬虫api内部的 targets 的间隔时间,而不是爬虫api本身调用的间隔时间