Я пытаюсь сканировать некоторые данные с веб-сайта, используя nodejs, ax ios и cheerio, код имеет такую структуру
async function scrape(url) {
const categories = await scrapeCategories(url);
const posts = await Promise.all(categories.map((urls => scrapePosts(urls)));
return posts;
}
async function scrapeCategories(url) {
const {data} = await axios.get(url);
...logic to get posts
return urls;
}
function scrapePosts(urls) {
return Promise.all(urls.map((url => scrapePost(url)))
}
async function scrapePost(url) {
const {data} = await axios.get(url);
...logic to get post data
return urls;
}
scrape(...).then(console.log)
Но когда я запускаю его, он отправляет некоторые запросы, и после примерно 100 запросов мое соединение inte rnet закрывается, и мне приходится перезагружать маршрутизатор для inte rnet соединение для возобновления. Все устройства в сети не могут получить доступ к inte rnet, когда это происходит.
Я даже использовал setTimeout для задержки запросов примерно на 100 мс, но это ничего не меняет. Я не понимаю, что именно здесь происходит не так.