Есть ли параллельный wget? Что-то вроде fping, но только для скачивания?

Есть ли параллельный wget? Что-то вроде fping, но только для скачивания?

Я нашел только puf (Parallel URL Fetcher), но мне не удалось заставить его считывать URL из файла; что-то вроде

 puf < urls.txt

тоже не работает.

На сервере установлена ​​операционная система Ubuntu.

решение1

С использованиемGNU-параллельный,

$ параллельная -j${jobs}wget < urls.txt

или xargsизGNU Findutils,

$ xargs -n 1 -P${jobs}wget < urls.txt

где ${jobs}— максимальное количество , которое вы wgetхотите разрешить для одновременного запуска (установив значение , -nчтобы 1получить один wgetвызов на строку в urls.txt). Без -j/ будет запускать столько заданий одновременно, сколько ядер ЦП (что не обязательно имеет смысл для связанного сетевого ввода-вывода), и будет запускаться по одному за раз.-Pparallelwgetxargs

Одной из полезных функций parallelявляется xargsраздельное хранение результатов одновременно выполняемых заданий, но если вас это не волнует, то, xargsскорее всего, она будет предустановлена.

решение2

решение3

Вы можете реализовать это с помощью Python и библиотеки pycurl. Библиотека pycurl имеет интерфейс "multi", который реализует свой собственный четный цикл, позволяющий выполнять несколько одновременных подключений.

Однако интерфейс скорее похож на C и поэтому немного громоздкий по сравнению с другим, более «питоновским» кодом.

Я написал обертку для него, которая строит более полный браузероподобный клиент поверх него. Вы можете использовать это в качестве примера. Смотритеpycopia.WWW.клиентМодуль HTTPConnectionManager оборачивает мультиинтерфейс.

решение4

Часть страницы руководства GNU Parallel содержит пример параллельного рекурсивного wget.

https://www.gnu.org/software/parallel/man.html#example-breadth-first-parallel-web-crawler-mirrorer

HTML загружается дважды: один раз для извлечения ссылок и один раз для загрузки на диск. Остальной контент загружается только один раз.

Если вам не нужна рекурсивность, ответ эфемиента кажется очевидным.

Связанный контент