Vraag Download bestanden uit een lijst


Hoe kan ik bestanden downloaden (die in een tekstbestand staan) met wget of een andere automatische manier?

Voorbeeld bestandslijst:

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

110
2018-02-12 16:39


oorsprong




antwoorden:


wget heeft hiervoor een ingebouwde vlag: wget -i your_list Je kunt dit soort dingen vinden door te lezen man wget


191
2018-02-12 16:56



Waarom RTFM wanneer je het zoete StackExchange-karma kunt krijgen? - spoulson
@aureianimus als ik link 2 wil overslaan, hoe dan? - alhelal
Deze oplossing werkte voor mij. Ik was blij dat het sequentieel en niet parallel werd gedownload. - asiby


Breng ze parallel aan

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

Standaard zal het net zoveel processen uitvoeren als je kernen hebt, je kunt dit waarschijnlijk nog een 10x opvoeren als je ze echt snel wilt verwijderen door "-j 20" na parallelle toe te voegen.


79
2017-10-17 15:57



Ik krijg hier zoveel mogelijk stemmen voor. Geen reacties, geen liefde! - meawoppl
Ik kan het gewoon niet laten werken. Ik zie geen enkele procese, voortschrijdende echo voor wget produceert niets - Jakub Bochenski
Merk op dat 'het net zoveel processen zal draaien als je kernen hebt' - netwerkbandbreedte zal waarschijnlijk meer een beperkende factor worden. - Wilf
Het hangt er echt van af. Voor een groot aantal kleine bestanden kan dit bijna een orde van grootte sneller zijn, omdat de meeste overdrachtstijd de handshake / TCP-rondreis is. Ook in de situatie waarin je van een aantal kleinere hosts downloadt, is de per verbindingsbandbreedte soms beperkt, dus dit zal dingen tegenhouden. - meawoppl
Dit is erg handig als u een lijst met relatieve URL's (resource-ID zonder hostnamen) met verschillende hostnamen wilt gebruiken, bijvoorbeeld: cat urlfile | parallel --gnu "wget example1.com{} "en cat urlfile | parallel --gnu" wget example2.com{}" - Mauricio Sánchez


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

9
2018-02-12 16:53





parallel heeft een ingebouwde vlag --arg-file (-a) die een invoerbestand als de bron zal gebruiken, zodat u dit kunt voorkomen cat |. Je kunt gebruiken

parallel --gnu -a urlfile wget

Of gewoon parallel --gnu wget < urlfile


7
2018-06-18 12:01





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

waar list.txt uw lijstbestand is


5
2018-02-12 16:51





Ik zag het antwoord van Florian Diesch.

Ik kreeg het aan het werk door de parameter op te nemen bqc in het commando.

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

Alle downloads begonnen parallel op de achtergrond.

  • -b: Achtergrond. Ga direct na het begin naar de achtergrond
  • -q: Rustig. Schakel de uitvoer van wget uit
  • -c: Doorgaan met. Ga door met het ophalen van een gedeeltelijk gedownload bestand

4
2018-05-04 16:56





Link bestand links.txt

Commando voor downloaden van alle koppelingsbestanden

    cat links.txt | wget -i

1
2018-05-19 02:54



Dit werkt niet. wget -i links.txt is de juiste opdracht. - Hery
Nee dit is geen goed commando. Juiste opdracht is deze: "cat links.txt | wget -i" - DreamCoder