Wget - internetseite spiegeln als html-Version...

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
Benutzeravatar
desputin
Beiträge: 1298
Registriert: 24.04.2015 17:16:34

Wget - internetseite spiegeln als html-Version...

Beitrag von desputin » 26.06.2016 13:13:23

Hallo Ihr,

ich habe diese Seite mit dem folgenden Befehl kopiert:

Code: Alles auswählen

wget      --recursive      --no-clobber      --page-requisites      --html-extension      --convert-links      --no-parent          www.regenbogenhamburg.de/
Nun möchte ich diese Seite lokal "umziehen" nach hier:
http://politikvonunten.org/Regenbogenhamburg/

Allerdings scheinen die HTML-Verknüpfungen nicht zu funktionieren. Es kommt immer die Startseite. Wißt Ihr, woran das liegen könnte?

Viele Grüße desputin
https://www.daswirdmanjawohlnochsagenduerfen.de
https://www.neoliberalyse.de - Über die Ökonomisierung aller Lebensbereiche. |

uname
Beiträge: 12075
Registriert: 03.06.2008 09:33:02

Re: Wget - internetseite spiegeln als html-Version...

Beitrag von uname » 26.06.2016 15:48:53

Das Problem ist die Tatsache, dass die Webseite das Content-Management-System Drupal [1] enthält. Einfach ein Download der HTML-Seiten funktioniert somit für eine 1:1-Kopie nicht. Zudem ist die Drupal-Version extrem veraltet (2010). Ok andere Baustelle.

Bei einem CMS hat man meist statische Seiten bestehend aus HTML, JavaScript (clientseitige Ausführung) sowie PHP (serverseitige Ausführung). Außerdem hat man meist eine MySQL-Datenbank (Konfiguration in einer PHP-Datei) wo der eigentliche Content gespeichert ist. Die Seiten/Unterseiten werden nun beim Aufruf (meist PHP-Datei, aber in URL nicht unbedingt sichtbar) über die statischen Daten und Inhalte der Datenbank zusammengebaut.

Du kannst versuchen eine reine HTML-Version ohne Datenbank zu bauen. Debianwget hat evtl. Mechanismen, die aus den über die Datenbank bereitgestellten Daten entsprechende HTML-Seiten korrekt bauen. Auch kannst du dir Debianhttrack anschauen. Wenn du die Seite interaktiv behalten willst musst du die Datenbank dumpen (z.B. MySQLDumper), auf dem anderen Webspace Drupal installieren und die Datenbank wieder hochladen. Aufgrund der wohl nicht ganz aktuellen Drupal-Version könnte das aber wohl schiefgehen.


[1] https://www.drupal.org

wanne
Moderator
Beiträge: 7465
Registriert: 24.05.2010 12:39:42

Re: Wget - internetseite spiegeln als html-Version...

Beitrag von wanne » 26.06.2016 19:39:54

uname hat geschrieben:Einfach ein Download der HTML-Seiten funktioniert somit für eine 1:1-Kopie nicht.
Wieso?
uname hat geschrieben:aber in URL nicht unbedingt sichtbar)
Wie um Himmels willen das? Frames sind doch hoffentlich tot (und auch die haben eine URL die ist nur nicht in der Adressleiste sichtbar). Selbiges gilt für POST. Auch damit arbeitet hoffentlich auch niemand. Als letztes gibt es natürlich noch XHR (was auch ne URL hat) und Cookies. Das kann wget dann tatsächlich nicht oder nur teilweise. Genauso, wie Seiten, die ihre Links erst per Javascript zusammenbauen. Sowas macht aber auch eher nur youtube und co. und ist IMHO auch zum großen teil wirklich als Kopiersdchutz gedacht.


uname hat geschrieben:Du kannst versuchen eine reine HTML-Version ohne Datenbank zu bauen. Debianwget hat evtl. Mechanismen, die aus den über die Datenbank bereitgestellten Daten entsprechende HTML-Seiten korrekt bauen.
Das ist das, was wget macht.
uname hat geschrieben: Auch kannst du dir Debianhttrack anschauen.
Würde ich auch ganz dick empfehlen. Etwas weniger einprägsame Syntax, aber um ansonsten das um Welten bessere Tool.

Tippe im Monent hast du ein Problem mit Sonderziechen. So sachen wie "/" übersetzt wget in "%2F" im Dateinamen. Dein Webserver übersetzt das dann wieder in / Und die Datei gibt's dann nicht. Warum hast du eigentlich überhaupt --no-clobber mitgegeben? dann wärst du zumindest das Problem mit den / (die halt nunmal in Dateinamen nicht gehen) los.

Ansonsten: Hast du die Leute von regenbogenhamburg.de gefragt? Sonst kannst du die ja mal fragen ob sie dir den Sourcecode bzw. die Datenbank geben.
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
desputin
Beiträge: 1298
Registriert: 24.04.2015 17:16:34

Re: Wget - internetseite spiegeln als html-Version...

Beitrag von desputin » 22.07.2016 16:42:38

Hallo Ihr, danke für die Antworten.

Offline klappt es aber wie es soll:
http://politikvonunten.org/Regenbogenha ... .de.tar.gz

Wenn man die Datei runterlädt, lokal entpackt und öffnet, geht alles... Oder?
https://www.daswirdmanjawohlnochsagenduerfen.de
https://www.neoliberalyse.de - Über die Ökonomisierung aller Lebensbereiche. |

Benutzeravatar
Meillo
Moderator
Beiträge: 8818
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Wget - internetseite spiegeln als html-Version...

Beitrag von Meillo » 22.07.2016 20:21:06

Ich verwende folgenden wget-Befehl um eine Website als eine Art Backup zu spiegeln:

Code: Alles auswählen

wget -r -np -k -p -nv "$url"
Das Ergebnis ist fuer meine Beduerfnisse vollstaendig befriedigend.
Use ed once in a while!

Benutzeravatar
desputin
Beiträge: 1298
Registriert: 24.04.2015 17:16:34

Re: Wget - internetseite spiegeln als html-Version...

Beitrag von desputin » 25.07.2016 18:19:45

Hallo Meillo,

danke. Ich habe das mal probiert mit Deinem Befehl. Irgednwie hat es aber nicht geklappt siehe hier:

http://politikvonunten.org/www.gesundheitstabelle.de/
https://www.daswirdmanjawohlnochsagenduerfen.de
https://www.neoliberalyse.de - Über die Ökonomisierung aller Lebensbereiche. |

Benutzeravatar
Meillo
Moderator
Beiträge: 8818
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Wget - internetseite spiegeln als html-Version...

Beitrag von Meillo » 25.07.2016 20:29:55

desputin hat geschrieben: Ich habe das mal probiert mit Deinem Befehl. Irgednwie hat es aber nicht geklappt siehe hier:
http://politikvonunten.org/www.gesundheitstabelle.de/
Da wirst du deinem Webserver wohl beibringen muessen, dass er z.B. http://politikvonunten.org/www.gesundhe ... hp/kontakt als text/html ausliefert und nicht als text/plain, auch wenn keine Dateiendung vorhanden ist.

Wie man aber diesen Link zum Funktionieren bekommt, das weiss ich nicht: http://politikvonunten.org/www.gesundhe ... icle?id=19
Use ed once in a while!

Benutzeravatar
desputin
Beiträge: 1298
Registriert: 24.04.2015 17:16:34

Re: Wget - internetseite spiegeln als html-Version...

Beitrag von desputin » 03.08.2016 22:47:10

Hm, ich hab das Ganze noch mal analysiert. Seltsam ist, daß in den HTML-Dateien die Verlinkung beispielsweise so aussieht:
index.html%3Fq=content%252Fdie-zukunft-ist-offen-regenbogen-f%25C3%25BCr-open-source.html
auf der Festplatte die angesteuerte Datei aber so:
index.html?q=content%2Fdie-zukunft-ist-offen-regenbogen-f%C3%BCr-open-source.html
Ich kapier das nicht, wieso das lokal dennoch funktioniert. Meine Idee wäre, durch Suchen und Ersetzen mit kfilereplace und krename das einfach anzugleichen. Ist aber etwas komplex....
https://www.daswirdmanjawohlnochsagenduerfen.de
https://www.neoliberalyse.de - Über die Ökonomisierung aller Lebensbereiche. |

Benutzeravatar
heisenberg
Beiträge: 3567
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Wget - internetseite spiegeln als html-Version...

Beitrag von heisenberg » 03.08.2016 23:44:31

Das erste ist doppelt per urlencode verarbeitet, das zweite nur einfach.

Funktioniert das anklicken der Links denn nicht? Wenn's funktioniert, dann würde ich das doch so lassen.

Ansonsten könnstest Du so den Inhalt url-de-coden:

Code: Alles auswählen

find . -type f -exec perl -MURI::Escape -pi -e 's/^(.*)$/uri_unescape($1)/e' "{}" \;
Das macht jetzt nur einen Encoding-Schritt von den beiden rückgängig.
Jede Rohheit hat ihren Ursprung in einer Schwäche.

Benutzeravatar
desputin
Beiträge: 1298
Registriert: 24.04.2015 17:16:34

Re: Wget - internetseite spiegeln als html-Version...

Beitrag von desputin » 07.08.2016 13:12:34

Hallo Heisenberg,
vielen Dank für Deine Hilfe! Das Anklicken der Links funktioniert wie gesagt lokal auf meiner Festplatte einwandfrei, auf dem Server aber nicht, da dann immer alle Seiten zurück auf die erste index-Seite springen.

Wenn Dein Befehl nur einen Encoding-Schritt rückgängig macht, reicht das aber auch nicht, damit ich damit arbeiten kann, oder?
Nach Eingabe Deines Befehls lautet ist nun Benennung der Dateien und der Links in den einzelnen HTML-Dateien zum Teil gleich:
index.html?q=content%2Fdie-zukunft-ist-offen-regenbogen-f%C3%BCr-open-source.html
und der Datei auf der Festplatte:
index.html?q=content%2Fdie-zukunft-ist-offen-regenbogen-f%C3%BCr-open-source.html
Aber andere Links gehen nach wie vor noch nicht. Z.B. Der in Firefox angezeigte Link:

Code: Alles auswählen

file:///media/Daten1/Temp/www.regenbogenhamburg.de5/index.html%3Fq=taxonomy%252Fterm%252F19%252067%252068%252073%252094.html
Der zur folgenden Datei gehört:

Code: Alles auswählen

index.html?q=taxonomy%2Fterm%2F19%2067%2068%2073%2094.html
gibt's da auch eine Lösung für?
https://www.daswirdmanjawohlnochsagenduerfen.de
https://www.neoliberalyse.de - Über die Ökonomisierung aller Lebensbereiche. |

Benutzeravatar
heisenberg
Beiträge: 3567
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Wget - internetseite spiegeln als html-Version...

Beitrag von heisenberg » 07.08.2016 14:25:23

Habe das auch mal kurz ausprobiert, wie das mit wget und parametern von scripts geht. Hat spontan nicht funktioniert. Geht bestimmt auch, wenn man die Doku noch ein bisschen wälzt. httrack hat im Vergleich dazu sofort funktioniert.
Jede Rohheit hat ihren Ursprung in einer Schwäche.

Benutzeravatar
desputin
Beiträge: 1298
Registriert: 24.04.2015 17:16:34

Re: Wget - internetseite spiegeln als html-Version...

Beitrag von desputin » 08.08.2016 20:20:58

Hm, mit webhttrack funktioniert es überhaupt nicht, wie es soll. Kein CSS, kein Layout nur irgendwelche html-Dateien die überhaupt nicht zusammenpassen und nicht aufeinander verlinken (nicht einmal eine index.html ist vorhanden). Die Lösung mit wget läuft ja wenigstens lokal exakt so wie sie soll, nur halt auf dem Server nicht :(
https://www.daswirdmanjawohlnochsagenduerfen.de
https://www.neoliberalyse.de - Über die Ökonomisierung aller Lebensbereiche. |

Benutzeravatar
heisenberg
Beiträge: 3567
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Wget - internetseite spiegeln als html-Version...

Beitrag von heisenberg » 08.08.2016 21:37:31

Was webhttrack ist weiss ich jetzt nicht. Ich meinte Debianhttrack.

Ich habe mir Deine Seite testweise mal auf einem Webserver heruntergeladen. Sieht alles ganz super aus.

Code: Alles auswählen

mkdir bla
cd bla
httrack --quiet --path=. --max-rate=10000000 --connection-per-second=100 http://www.deineseite.de 
...und wenn Du ohne Rücksicht auf den Webserver mit max. Geschwindigkeit ziehen willst, dann kannst Du noch --disable-security-limits dazu nehmen.
Jede Rohheit hat ihren Ursprung in einer Schwäche.

Apfelmann
Beiträge: 669
Registriert: 15.01.2010 20:48:45
Kontaktdaten:

Re: Wget - internetseite spiegeln als html-Version...

Beitrag von Apfelmann » 08.08.2016 23:51:17

heisenberg hat geschrieben:

Code: Alles auswählen

mkdir bla
cd bla
httrack --quiet --path=. --max-rate=10000000 --connection-per-second=100 http://www.deineseite.de 
Danke :THX:

Benutzeravatar
heisenberg
Beiträge: 3567
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Wget - internetseite spiegeln als html-Version...

Beitrag von heisenberg » 09.08.2016 00:20:29

...und apropos download von Javascript gerenderten Seiten. Ich hatte vor kurzem einen Fall, bei dem ich das gebraucht habe. Eine grössere Seite, die Listen aus Javascriptquellen mit Links generiert hat. Die habe ich mit wget nicht bekommen. Es gibt da phantomJS, mit dem man Seiten inkl. Javascript rendern und herunterladen kann. Aber Binärdateien sollte man damit tunlichst nicht herunterladen.

Deswegen ein PHP-Script, dass mit wget und phantomJS versucht eine Seite komplett herunterzuladen. Vielleicht mag es jemand als Rohling dienen.
NoPaste-Eintrag39435
Jede Rohheit hat ihren Ursprung in einer Schwäche.

Benutzeravatar
desputin
Beiträge: 1298
Registriert: 24.04.2015 17:16:34

Re: Wget - internetseite spiegeln als html-Version...

Beitrag von desputin » 09.08.2016 21:31:29

@ heisenberg:

Super, vielen Dank! Ich hatte httrack mit webhttrack verweschelt. Letzteres Paket scheint nicht richtig gepflegt zu werden.

Mit httrack und Deinem Befehlt hat nun alles 1a geklappt!!
https://www.daswirdmanjawohlnochsagenduerfen.de
https://www.neoliberalyse.de - Über die Ökonomisierung aller Lebensbereiche. |

Antworten