在JavaScript中,可以使用setTimeout函数来控制爬虫的速度。setTimeout函数允许你在指定的毫秒数后执行一个函数。为了控制爬虫速度,你可以在每次爬取网页后使用setTimeout函数设置一个延迟。
以下是一个简单的示例,展示了如何使用setTimeout控制爬虫速度:
const axios = require('axios'); const cheerio = require('cheerio'); // 爬取函数 async function fetch(url) { try { const response = await axios.get(url); const $ = cheerio.load(response.data); // 在这里解析网页内容,提取所需数据 console.log($('selector').text()); } catch (error) { console.error(`Error fetching ${url}:`, error); } } // 控制爬取速度的函数 function sleep(ms) { return new Promise((resolve) => setTimeout(resolve, ms)); } // 主程序 async function main() { const urls = [ 'https://example.com/page1', 'https://example.com/page2', 'https://example.com/page3', // ... ]; for (const url of urls) { await fetch(url); await sleep(1000); // 设置延迟1秒(1000毫秒) } } main();
在这个示例中,我们首先使用axios库获取网页内容,然后使用cheerio库解析网页。在每次爬取网页后,我们使用sleep函数设置一个1秒的延迟。你可以根据需要调整延迟时间以控制爬虫速度。