Вопрос Загрузка файлов из списка


Как загрузить файлы (которые перечислены в текстовом файле), используя wget или какой-нибудь другой автоматический способ?

Пример списка файлов:

www.example.com/1.pdf
www.example.com/2.pdf
www.example.com/3.pdf

110
2018-02-12 16:39


происхождения




ответы:


wget имеет встроенный флаг для этого: wget -i your_list Вы можете найти такие вещи, читая man wget


191
2018-02-12 16:56



Почему RTFM, когда вы можете получить сладкую карму StackExchange? - spoulson
@aureianimus, если я хочу пропустить ссылку 2, то как? - alhelal
Это решение сработало для меня. Я был доволен загрузкой последовательно, а не параллельно. - asiby


Получите их параллельно с

cat urlfile | parallel --gnu "wget {}"

По умолчанию он будет запускать столько процессов, сколько у вас есть ядра, возможно, вы можете увеличить его до 10 раз, если вы действительно хотите быстро их свернуть, добавив «-j 20» после параллелизма.


80
2017-10-17 15:57



Я получаю так много голосов, как за это. Нет комментариев, нет любви! - meawoppl
Я просто не могу заставить его работать. Я не вижу, чтобы какая-то генерация породила, переключение эха для wget ничего не выводит - Jakub Bochenski
Обратите внимание, что «в нем будет работать столько процессов, сколько у вас есть» - пропускная способность сети, скорее всего, будет более ограничивающим фактором. - Wilf
Это действительно зависит. Для большого количества небольших файлов это может быть почти на порядок быстрее, так как большая часть времени передачи - это двустороннее путешествие по рукопожатию / TCP. Кроме того, в ситуации, когда вы загружаетесь с нескольких небольших хостов, когда-то ширина полосы пропускания ограничена, так что это может повредить все. - meawoppl
Это очень полезно, если вы хотите использовать список относительных URL (идентификатор ресурса без имен хостов) с разными именами хостов, например: cat urlfile | parallel --gnu "wget example1.com{} "и cat urlfile | parallel --gnu" wget example2.com{}» - Mauricio Sánchez


xargs -i wget 'http://{}'  < your_list

9
2018-02-12 16:53





parallel имеет встроенный флаг --arg-file (-a), который будет использовать входной файл в качестве источника, поэтому вы можете избежать cat |, Вы можете использовать

parallel --gnu -a urlfile wget

Или просто parallel --gnu wget < urlfile


7
2018-06-18 12:01





awk '{print "http://" $0;}' list.txt | xargs -l1 wget

где list.txt - это ваш файл списка


5
2018-02-12 16:51





Я увидел ответ Флориана Дьеша.

Я получил его для работы, включив параметр bqc в команде.

xargs -i wget -bqc 'http://{}' < download.txt

Все загрузки запускались параллельно в фоновом режиме.

  • -b: Задний план. Перейдите на задний план сразу после запуска
  • -q: Тихо. Выключить вывод wget
  • -c: Продолжать. Продолжить получение частично загруженного файла

4
2018-05-04 16:56





Ссылка файла links.txt

Команда для загрузки всех файлов ссылок

    cat links.txt | wget -i

1
2018-05-19 02:54



Это не работает. wget -i links.txt это правильная команда. - Hery
Нет, это не правильная команда. Правильная команда такова: «cat links.txt | wget -i» - DreamCoder