Wenn Sie bereits eine Liste mit URLs haben, fügen Sie einfach die POST-Daten zu dieser Liste hinzu. Etwas wie:
www.example.com postdata1
www.foo.com
www.bar.com second_post_data
-i
Lesen Sie dann statt zu verwenden die Datei in einer Bash-Schleife und übergeben Sie die Daten an wget:
while read url post; do wget --post-data="$post" $url; done < list.txt
Verwenden Sie &
anstelle von, um sie parallel auszuführen, sodass mehrere Dateien gleichzeitig heruntergeladen werden ;
. Vorsicht, dies startet einen separaten wget
Prozess für jede URL.
while read url post; do wget --post-data="$post" $url & done < list.txt
Ein Trick, den ich zum Starten dieser Art von Dingen verwende, besteht darin, zu verfolgen, wie viele derzeit ausgeführt werden, und den nächsten nur auszuführen, wenn die Anzahl unter einem Schwellenwert liegt, z. B. 10:
while read url post; do
while [[ "$(pgrep -fc wget)" -gt 9 && $c -gt 10 ]]; do sleep 1; done;
((c++));
echo "Launching $url ($c)";
wget --post-data="$post" $url >/dev/null 2>&1 && echo "$c finsihed" &
done < list.txt
Dadurch werden die ersten 10 URLs gestartet. Warten Sie dann, bis eine abgeschlossen ist, und starten Sie die nächste.