Wie kann ich 1 Million Dateien herunterladen?

1331
rudolph

Wie kann ich 1 Million Dateien herunterladen?

Ich habe viele Download - Manager versucht, sie alle sind sehr langsam, wenn URL - Liste zu importieren, zur Zeit ich für 20 Stunden auf gewartet habe Download - Meister, ich habe auch versucht, Internet Download Manager und JDownloader, gibt es eine andere Software, die URL Import verarbeiten kann und schneller herunterladen?

-1
Welches Format haben die Dateien? Wie gross sind sie? Wo lädst du sie herunter? Jay vor 9 Jahren 0
Es sind meistens Bilddateien - jpg, png, gif, jeweils etwa 200 kb. Ich lade sie von URLs herunter rudolph vor 9 Jahren 0
Bist du unter Linux oder Windows? Wenn es Linux ist, ist das super einfach Jay vor 9 Jahren 0
Es ist effizienter, diese Dateien entweder über das Torrent-Protokoll zu übertragen oder sie zu einer Archivdatei (ZIP, RAR 7Z usw.) auf dem Hostsystem zu kombinieren, bevor sie an das Ziel heruntergeladen werden. int_541 vor 9 Jahren 0

4 Antworten auf die Frage

2
Jay

In Linux ist das mit super einfach wget

Ich gehe jedoch davon aus, dass Sie ein Windows-Benutzer sind.

Wenn dies der Fall ist, können Sie mit Powershell ähnliche Ergebnisse erzielen, wenn Sie Powershell 3 oder höher verwenden.

  1. Erstellen Sie eine .txt-Datei mit der vollständigen Liste der URLs im Editor
  2. Öffnen Sie Powershell und cdin das Verzeichnis, in dem Sie Ihre urls.txt-Datei gespeichert haben. Zum Beispielcd C:\Users\jay\Documents
  3. Fügen Sie Folgendes in das Powershell-Fenster ein: Get-Content urls.txt | ForEach-Object
Das funktioniert. Wie kann ich mehrere Threads setzen? rudolph vor 9 Jahren 0
Kapseln Sie einfach den Code in die erste Antwort, die Sie hier finden: http://stackoverflow.com/questions/4016451/can-powershell-run-commands-in-parallel Jay vor 9 Jahren 1
Multithreading wie dieses ist ziemlich kompliziert - ich schlage vor, Sie teilen Ihre 1 Million Dateiliste in 5 Teile oder etwas, öffnen dann 5 separate Powershell-Fenster und führen den gleichen Befehl aus. Jay vor 9 Jahren 1
1
Gricey

Wenn Sie Cygwin installieren, können Sie Wget verwenden, um alles in einer Datei herunterzuladen, die eine Liste von URLs enthält.

Fügen Sie alle URLs in eine Datei ein, die als Datei bezeichnet urls.txtwird. Sie können diesen Befehl ausführen:

$ wget -i urls.txt

Wenn Sie cygwin noch nicht haben, stellen Sie sicher, dass Wget während der Installation als Paket ausgewählt wird Gricey vor 9 Jahren 0
Wie kann ich diesem Befehl einen Download-Ordner hinzufügen? Ich habe `wget -i -PD: \ folder \ urls.txt` ausprobiert. Es wird ein Fehler angezeigt:` Auflösen von d (d) ... fehlgeschlagen: Name oder Dienst nicht bekannt. wget: Hostadresse kann nicht aufgelöst werden 'd' -P: Keine solche Datei oder Verzeichnis. Keine URLs in -P.` gefunden rudolph vor 9 Jahren 0
Ich habe den Ordner cygwin64 auf eine externe Festplatte verschoben und dort den Befehl ausgeführt. Alles funktioniert jetzt. Es wäre aber toll, wenn es Parameter für mehrere Downloads gibt. rudolph vor 9 Jahren 0
Ich habe auch multithread cmd `cat urls.txt | gefunden xargs -P 7 -n 1 wget -nv` (7 ist max. Verbindungen) Vielleicht ist dies für jemanden nützlich. rudolph vor 9 Jahren 0
Entschuldigung, war für ein paar Tage weg. Ich bin froh, dass Sie es gefunden haben Gricey vor 9 Jahren 0
1
Deadly-Bagel

Wenn Sie auf der Suche nach Effizienz sind, ist die Ausführung einiger Jobs in PowerShell wahrscheinlich einer der besten Ansätze, erfordert jedoch ein wenig Scripting-Erfahrung.

Ich füllte eine Datei mit einer Million Datensätzen und legte dann einen Befehl zurück, um sie zurückzulesen, nahm 13,5 Sekunden (ich habe eine Standard-Festplatte mit 7.200 U / min).

$down = New-Object "System.Net.WebClient" Get-Content "C:\YourFile.txt" | Foreach-Object { $down.DownloadFile($_, $_.Split("\")[-1]) } 

Nur als ein einfaches Single-Thread-Beispiel, aber dies wird im Hintergrund unglücklich sein, wenn die Zeit nicht ausschlaggebend ist. Ansonsten könnten Sie die Datei entweder manuell oder programmgesteuert aufteilen und Start-Job { //code here// }für jeden Abschnitt verwenden.

Natürlich hängt dies vollständig vom Format Ihrer Datei ab und davon, wie Sie sie speichern müssen. In PowerShell ist jedoch alles möglich.

0
Vítor Dias

Es gibt ein kleines Programm für Windows namens Mass Download, das mir oft sehr geholfen hat: http://www.softpedia.com/get/Internet/Download-Managers/Mass-Download.shtml . Ich hoffe es kann dir helfen!

Können Sie weitere Details angeben, um Benutzern zu helfen? yass vor 7 Jahren 0
Es ist ein sehr kleines GUI-Programm (keine Installation erforderlich). Geben Sie die TXT-Datei mit der URL-Liste an, dann den Zielordner und klicken Sie auf Download. Es werden bis zu 5 Dateien gleichzeitig heruntergeladen. Falls ein Download nicht erfolgreich ist, wird er fortgesetzt, sobald alle anderen Dateien heruntergeladen wurden. Vítor Dias vor 7 Jahren 0