Ich benutze das wgetProgramm, möchte aber nicht, dass es die heruntergeladene HTML-Datei speichert. Ich möchte, dass es verworfen wird, nachdem es empfangen wurde. Wie mache ich das?
Ich benutze das wgetProgramm, möchte aber nicht, dass es die heruntergeladene HTML-Datei speichert. Ich möchte, dass es verworfen wird, nachdem es empfangen wurde. Wie mache ich das?
Antworten:
Sie können die Ausgabe von wget nach / dev / null (oder NUL unter Windows) umleiten:
wget http://www.example.com -O /dev/null
Die Datei wird nicht auf die Festplatte geschrieben, sondern heruntergeladen.
Wenn Sie möchten , um die Datei nicht speichern, und Sie haben die Lösung von dem Herunterladen der Seite in akzeptiert /dev/null, nehme ich Sie wget nicht verwenden zu erhalten und die Seiteninhalte zu analysieren .
Wenn Sie wirklich eine Remote-Aktion auslösen müssen, überprüfen Sie, ob die Seite vorhanden ist, und so weiter. Ich denke, es ist besser, das Herunterladen der HTML-Textseite überhaupt zu vermeiden.
Spielen Sie mit wgetOptionen, um nur das abzurufen, was Sie wirklich benötigen, z. B. HTTP-Header, Anforderungsstatus usw.
Vorausgesetzt, Sie müssen überprüfen, ob die Seite in Ordnung ist (dh der zurückgegebene Status ist 200), können Sie Folgendes tun:
wget --no-cache --spider http://your.server.tld/your/page.html
Wenn Sie die vom Server zurückgegebenen Header analysieren möchten, gehen Sie wie folgt vor:
wget --no-cache -S http://your.server.tld/your/page.html
Weitere Optionen zum Spielen finden Sie auf der wget-Manpage .
Siehe lynxauch als Alternative zu wget.
--no-cacheIn der Manpage heißt es, dass wget "dem Remote-Server eine entsprechende Anweisung ('Pragma: no-cache') sendet, um die Datei vom Remote-Dienst
$ wget http://www.somewebsite.com -O foo.html --delete-after
--delete-afterOption ist die Wahl, wenn Sie rekursiv herunterladen müssen, aber den eigentlichen Inhalt verwerfen möchten.
-O /dev/null
Wenn Sie das Ergebnis auch in der Konsole drucken möchten, können Sie Folgendes tun:
wget -qO- http://www.example.com
qleise (sie geben keinen Fortschritt und keine anderen Informationen aus) und O-(schreiben Sie das abgerufene Dokument in die Konsole).
Schauen Sie sich die Option "-spider" an. Ich stelle damit sicher, dass meine Websites online sind, und sende mir eine E-Mail, falls dies nicht der Fall ist. Dies ist ein typischer Eintrag von meiner Crontab:
46 */2 * * * if ! wget -q --spider http://www.rochesterflyingclub.com/ >/dev/null 2>&1; then echo "Rochester Flying Club site is down" ; fi
Für eine * NIX-Box und mit wgetschlage ich vor, das Schreiben in eine Datei zu überspringen. Auf meiner Ubuntu 10.04-Box ist mir aufgefallen, wget -O /dev/nulldass wget nach dem ersten Download den Downloadvorgang abgebrochen hat.
Mir ist auch aufgefallen, wget -O real-filedass wget dazu führt, die eigentlichen Links auf der Seite zu vergessen. Es besteht darauf index.html, auf jeder Seite präsent zu sein. Solche Seiten sind möglicherweise nicht immer vorhanden und wget merkt sich keine Links, die es zuvor gesehen hat.
mkdir /dev/shm/1
cd /dev/shm/1
wget --recursive --relative --no-parent ...
Beachten Sie, dass es keine -O fileOption gibt. wget schreibt in das $ PWD-Verzeichnis. In diesem Fall handelt es sich um ein Nur-RAM- tmpfs- Dateisystem. Wenn Sie hier schreiben, sollten Sie die Festplattenabwanderung umgehen (abhängig vom Swap-Speicher) UND alle Links im Auge behalten. Dies sollte die gesamte Website erfolgreich crawlen.
Danach natürlich
rm --recursive --force /dev/shm/1/*
Verwenden Sie die Option --delete-after, mit der die Datei nach dem Download gelöscht wird.
Edit: Ups, mir ist gerade aufgefallen, dass das schon beantwortet wurde.
Laut Hilfedokument (wget -h) können Sie die Option --spider verwenden, um den Download zu überspringen (Version 1.14).
Download:
-S, --server-response print server response.
--spider don't download anything.
/dev/nullDing funktionieren?