@banch4razen

Как массово скачать файлы с сайта с помощью JS?

Допустим, с сайта нужно скачать n-ное кол-во файлов, находящихся в одной директории.
В названии файлов меняется только аффикс с цифрами в конце.

https: //site.xyz/dir/dir/.../file0.abc
.....
https: //site.xyz/dir/dir/.../file9999.abc

Например, можно создать тестовый файл на 10 000 строк с ссылками (с помощью Excel), чтобы потом перебрать каждую и скачать, или как-то попроще? Посложнее может быть? Как угодно, скачать бы.
  • Вопрос задан
  • 515 просмотров
Решения вопроса 1
Aetae
@Aetae Куратор тега JavaScript
Тлен
Вот вам говнокод, который я бы не рекомендовал использовать, без крайней необходимости:
var url = 'https: //site.xyz/dir/dir/.../file{index}.abc';  // {index} - будет заменён на цифру.
var start = 1; // первый файл
var end = 4; // последний файл
var delay = 1; // задержка 1 секунда

function linkClick(url, start, end, delay) {
  if(start > end) return false;
  const a = document.createElement('a');
  a.href = url.replace('{index}', start);
  document.body.appendChild(a);
  a.click();
  setTimeout(() => {
    a.remove();
    linkClick(url, start + 1, end, delay);
  }, delay * 1000);
}

document.body.addEventListener(
  'click',                              
  () => linkClick(url, start, end, delay),
  {
    once: true
  }
)

Настраиваете чтобы браузер для нужного типа файлов начинал скачку ничего не спрашивая.
Запускаете этот код, после чего кликаете в любом месте(клик нужен чтоб браузер разрешил имитацию клика).
Он будет каждую секунду создавать новую ссылку и кликать на неё. Если файлы большие, то сервер может послать нахрен если накопится много запросов, тогда перерыв нужно увеличить.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы