Почему отправка нескольких запросов http с сервера узла на моем ноутбуке искажает доступ inte rnet - PullRequest
0 голосов
/ 07 марта 2020

Я пытаюсь сканировать некоторые данные с веб-сайта, используя 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 мс, но это ничего не меняет. Я не понимаю, что именно здесь происходит не так.

...