Homepage selbermachen 7.852 Themen, 35.619 Beiträge

Webseite unter Linux per PHP komplett speichern

twmike / 9 Antworten / Baumansicht Nickles

Hallo, ich bin auf der Suche nach einem vernünftigen PHPScript
welches komplette Websites speichert.Der Hauptgrund meines Anliegens
ist eine Offline Kollektion von sehr guten Flashsites zusammen zustellen, und die gibts wie Sand am Meer. Wenn ich ich im Gegenzug
einen Gefallen tuen kann teilt es mir mit.
mfg und danke

twmike

twmike@web.de

bei Antwort benachrichtigen
xafford twmike „Webseite unter Linux per PHP komplett speichern“
Optionen

system("wget ".$url);

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
twmike xafford „system wget . url “
Optionen

hallo xafford,
danke für die schnelle beantwortung meiner frage, ich weiss aber nicht
wie ich die anweisung interpretieren soll.

mfg twmike@web.de

bei Antwort benachrichtigen
xafford twmike „hallo xafford, danke für die schnelle beantwortung meiner frage, ich weiss aber...“
Optionen

Mit dem Befehl system() übergibst Du einen Systembefehl an das System, in diesem Fall "wget". Wget ist ein Programm, das genau das macht, was Du willst, nämlich Daten von URLs ziehen mit der Syntax:
wget [OPTION] [URL]

Da ich mal davon ausgehe, daß Du kein Linux zur Hand hast geb ich dir mal nachfolgend die Optionsliste zu wget. Wichtig sind für dich vor Allem -T (Timeout) oder -Q (Quota), da Du sonst den Server aufhängen kannst. Allerdings klappt das Ganze nur, wenn Du entsprechende Systemrechte haben solltest.
Das Ganze rein mit PHP zu realisieren wäre alles andere als trivial und nicht auf die Schnelle zu programmieren.


[root@xafford root]# wget --help
GNU Wget 1.8.2, ein nicht-interaktives Netz-Werkzeug zum Download von Dateien.
Syntax: wget [OPTION]... [URL]...

Erforderliche Argumente zu langen Optionen sind auch bei kurzen Optionen erforderlich.

Beim Start:
-V, --version Programmversion anzeigen
-h, --help diese Hilfe anzeigen
-b, --background nach dem Starten in den Hintergrund gehen
-e, --execute=BEFEHL einen ».wgetrc«-artigen Befehl ausführen

Log-Datei schreiben und Eingabe-Datei:
-o, --output-file=DATEI Protokoll-Meldungen in DATEI schreiben
-a, --append-output=DATEI Meldungen der DATEI anhängen
-d, --debug Debug-Ausgabe anzeigen
-q, --quiet keine Ausgabe von Meldungen
-v, --verbose ausführliche Meldungen (Vorgabe)
-nv, --non-verbose Meldungen weniger ausführlich, aber nicht »--quiet«
-i, --input-file=DATEI in DATEI gelistete URLs holen
-F, --force-html Eingabe-Datei als HTML behandeln
-B, --base=URL URL relativen Links in »-F -i DATEI« voranstellen
--sslcertfile=DATEI optionales Client-Zertifikat.
--sslcertkey=SCHLÜSSEL_DATEI
optionale SCHLÜSSEL_DATEI für dieses Zertifikat.
--egd-file=FILE Dateiname des EGD Sockets.
Download:
--bind-address=ADRESSE für den lokalen Rechner ADRESSE (Hostname oder
IP) vorgeben
-t, --tries=ZAHL Anzahl der Wiederholversuche auf ZAHL setzen
(0 steht für unbegrenzt)
-O --output-document=DATEI Dokumente in DATEI schreiben
-nc, --no-clobber bestehende Dateien nicht überschreiben oder
».#« Suffix verwenden
-c, --continue Fortführung des Downloads einer bereits zum
Teil geholten Datei
--progress=STYLE Anzeige für den Download auf STYLE setzen
-N, --timestamping Nur Dateien holen, die neuer als die lokalen
Dateien sind
-S, --server-response Antwort des Servers anzeigen
--spider kein Download (don't download anything)
-T, --timeout=SEKUNDEN den Lese-Timeout auf SEKUNDEN setzen
-w, --wait=SEKUNDEN SEKUNDEN zwischen den Downloads warten
--waitretry=SEKUNDEN 1...SEKUNDEN zwischen den erneuten Versuchen
warten
--random-wait Zwischen 0 und 2*WAIT Sekunden zwischen
Versuchen warten
-Y, --proxy=on/off Proxy ein (»on«) oder aus (»off«) stellen
-Q, --quota=ZAHL Kontingent für den Download auf ZAHL setzen
--limit-rate=RATE Datenrate beim Download auf RATE begrenzen
Verzeichnisse:
-nd --no-directories keine Verzeichnisse anlegen
-x, --force-directories Anlegen von Verzeichnissen erzwingen
-nH, --no-host-directories keine Host-Verzeichnisse anlegen
-P, --directory-prefix=PREFIX Dateien unter dem Verzeichnis PREFIX/...
speichern
--cut-dirs=ZAHL ZAHL der Verzeichnisebenen der Gegenseite
überspringen

HTTP-Optionen:
--http-user=BENUTZER http-Benutzer auf BENUTZER setzen
--http-passwd=PASS http-Passwort auf PASS setzen
-C, --cache=on/off server-gepufferte Daten erlauben/verbieten
(server-cached data) (normalerweise erlaubt)
-E, --html-extension alle text/html-Dokumente mit dem Suffix .html
speichern
--ignore-length das »Content-Length«-Kopffeld ignorieren
--header=ZEICHENKETTE ZEICHENKETTE zwischen die Kopfzeilen einfügen
--proxy-user=BENUTZER BENUTZER als Proxy-Benutzername setzen
--proxy-passwd=PASS PASS als Proxy-Passwort setzen
--referer=URL die Kopfzeile `Referer: URL' der HTTP-Anforderung
hinzufügen
-s, --save-headers den HTTP-Vorspann (header lines) in Datei sichern
-U, --user-agent=AGENT als AGENT anstelle of Wget/VERSION identifizieren
--no-http-keep-alive »HTTP keep-alive« (ununterbrochene Verbindungen)
deaktivieren
--cookies=off Cookies nicht verwenden
--load-cookies=DATEI Cookies vor der Sitzung aus der DATEI laden
--save-cookies=DATEI Cookies nach der Sitzung in der DATEI speichern

FTP-Optionen:
-nr, --dont-remove-listing ».listing«-Dateien nicht entfernen
-g, --glob=on/off Dateinamen-»Globbing« ein- (»on«) oder ausstellen
(»off«)
--passive-ftp den "passiven" Übertragungsmodus verwenden
--retr-symlinks falls auftretend, verlinkte Dateien holen (keine
Verzeichnisse)

Rekursives Holen:
-r, --recursive rekursiver Download -- mit Umsicht verwenden!
-l, --level=Zahl maximale Rekursionstiefe (»inf« oder »0« steht
für ohne Begrenzung)
--delete-after geholte Dateien nach dem Download löschen
-k, --convert-links nicht-relative Links in relative umwandeln
-K, --backup-converted vor dem Umwandeln der Datei X, ein Backup als
X.orig anlagen.
-m, --mirror Kurzform, die »-r -N -l inf -nr« entspricht.
-p, --page-requisites alle Bilder usw. holen, die für die Anzeige
der HTML-Seite notwendig sind
Rekursiv erlauben/zurückweisen:
-A, --accept=LISTE komma-unterteilte Liste der erlaubten
Dateiendungen
-R, --reject=LISTE komma-unterteilte Liste der
zurückzuweisenden Erweiterungen
-D, --domains=LISTE komma-unterteilte Liste der erlaubten
Domains
--exclude-domains=LISTE komma-unterteilte Liste der
zurückzuweisenden Domains
--follow-ftp FTP-Verweisen von HTML-Dokumenten aus
folgen
--follow-tags=LISTE komma-unterteilte Liste der zu folgenden
HTML-Tags
-G, --ignore-tags=LISTE komma-unterteilte Liste der zu
missachtenden HTML-Tags
-H, --span-hosts wenn »--recursive«, auch zu fremden Hosts
gehen
-L, --relative nur relativen Verweisen folgen
-I, --include-directories=LISTE Liste der erlaubten Verzeichnisse
-X, --exclude-directories=LISTE Liste der auszuschließenden Verzeichnisse
-np, --no-parent nicht in das übergeordnete Verzeichnis
wechseln
Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
Zaphod xafford „Mit dem Befehl system übergibst Du einen Systembefehl an das System, in diesem...“
Optionen

... wget ;-). *SCNR* Gruß, Z.

[Diese Nachricht wurde nachträglich bearbeitet.]

bei Antwort benachrichtigen
xafford Zaphod „... root benutzt aber kein“
Optionen

?

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
twmike xafford „system wget . url “
Optionen

Hallo xafford,

danke nochmals, werde gleich mal testen ob ichs kapiert habe melde
mich sonst nochmal

mfg
twmike

bei Antwort benachrichtigen
twmike xafford „system wget . url “
Optionen

hallo,

ich habe es mit folgender kommandooption probiert:
wget -t2 -x -r -p -ocolt.html http://www.unknown-stuntman.de
dann hat er sich die index.html geholt, welche ich dann aufgerufen habe,
aber es kam die meldung das die datei root.html (aus nem unterordner scheinbar) nicht zu finden sei und in der colt.html stand folgendes als status oder log:
-----------------------------
http://www.unknown-stuntman.de/ => `www.unknown-stuntman.de/index.html' Auflösen des Hostnamen »www.unknown-stuntman.de«.... 62.48.69.86 Verbindungsaufbau zu www.unknown-stuntman.de[62.48.69.86]:80... verbunden. HTTP Anforderung gesendet, warte auf Antwort... 200 OK L�nge: 8,906 [text/html] 0K ........ 100% 35.63 KB/s 12:47:35 (35.63 KB/s) - »www.unknown-stuntman.de/index.html« gespeichert [8906/8906] Lade »robots.txt«; bitte Fehler ignorieren. --12:47:35-- http://www.unknown-stuntman.de/robots.txt => `www.unknown-stuntman.de/robots.txt' Weiterverwendung der Verbindung zu www.unknown-stuntman.de:80. HTTP Anforderung gesendet, warte auf Antwort... 302 Found Platz: http://www.unknown-stuntman.de/error.html[folge] --12:47:35-- http://www.unknown-stuntman.de/error.html => `www.unknown-stuntman.de/error.html' Verbindungsaufbau zu www.unknown-stuntman.de[62.48.69.86]:80... verbunden. HTTP Anforderung gesendet, warte auf Antwort... 200 OK L�nge: 0 [text/html] 0K 0.00 B/s 12:47:35 (0.00 B/s) - »www.unknown-stuntman.de/error.html« gespeichert [0/0] --12:47:35-- http://www.unknown-stuntman.de/index_noflash.html => `www.unknown-stuntman.de/index_noflash.html' Weiterverwendung der Verbindung zu www.unknown-stuntman.de:80. HTTP Anforderung gesendet, warte auf Antwort... 302 Found Platz: http://www.unknown-stuntman.de/error.html[folge] --12:47:35-- http://www.unknown-stuntman.de/error.html => `www.unknown-stuntman.de/error.html' Verbindungsaufbau zu www.unknown-stuntman.de[62.48.69.86]:80... verbunden. HTTP Anforderung gesendet, warte auf Antwort... 200 OK L�nge: 0 [text/html] 0K 0.00 B/s 12:47:35 (0.00 B/s) - »www.unknown-stuntman.de/error.html« gespeichert [0/0] BEENDET --12:47:35-- Geholt: 8,906 Bytes in 3 Dateien
-----------
falls du nochmals lust hast mir zu helfen, danke

mfg

twmike

bei Antwort benachrichtigen
xafford twmike „Re2: xafford brauche eventuell nochmals hilfe“
Optionen

Als erstes: Linux unterscheidet zwischen Groß- und Kleinschreibung, also vorsicht mit den Parametern -o bedeutet, daß Du die Protokolldaten in die folgende Datei schreibst, -O bedeutet, daß Du die Quellseite umbenennst, -t bedeutet Anzahl der Versuche (was den Server immer noch lange beschäftigen kann), -T bedeutet Timeout.
Weiterhin mußt du mit -r verdammt vorsichtig sein, das kann den Server komplett aufhängen.
Übrigens ist die Seite eine Flash-Seite ohne HTML-Alternative (zumindest die Portalseite) und das kannst Du dann nicht automatisch laden lassen, da wget keine Links in Flash erkennen kann (ebensowenig wie PHP im Normalfall).

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
twmike Nachtrag zu: „Webseite unter Linux per PHP komplett speichern“
Optionen

alles klar, danke

bei Antwort benachrichtigen