[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Wusstet Ihr schon? ein Lynx-Tip



Eine - wie ich finde -sehr nuetzliche Funktion von Lynx hat bisher nur wenig
beachtung gefunden.
 
Lynx kann www-Seiten auch automatisch rekursiv aus dem Netz holen. D. h. man
gibt eine Startadresse an, und lynx folgt automatisch allen Links, die auf
dieser Startseite aufgefuehrt sind. Die Seiten werden gleich in ascii
abgespeichert. Dadurch ist es moeglich vollautomatisch z. B. die Artikel einer
Zeitung zu holen, aufzulegen und offline zu lesen. Das ganze geht wie folgt:
 
Das automatische rekursive Verfolgen von Lynx wird mit dem
Kommandozeilenparameter -traversal eingeschaltet. Zu diesem Schalter muessen
entweder der Schalter -dump oder -crawl hinzukommen. -dump bewirkt, dass die
aufgerufenen Seiten nach stdout also im Normalfall auf die Console
(Bildschirm) ausgegeben werden. Diese Ausgabe liesse sich z. B. mit dem >
Zeichen in eine Datei umleiten. Der Schalter -crawl (kriechen) veranlasst Lynx,
die Seiten nach Ascii zu konvertieren. Dabei wird jede Html-Seite in einer
separaten Ascii-Datei abgespeichert. Die Seiten haben ein bestimmtes Format:
Sie beginnen mit lnk. Es folgt eine fuenfstellige Nummer und die Endung .dat.
Die erste Seite heisst dann also lnk00000.dat, die zweite lnk000001.dat etc...
In diesen Dateien steht in der ersten Zeile die Url der Seite. In der zweiten
Zeile steht der Dateiname, und es folgt der Text in Ascii. -dump oder -crawl
muessen unbedingt angegeben werden, sonst funktioniert -traversal nicht. Um
nicht versehentlich rekursiv das ganze WWW mit seinen 150 Millionen Seiten auf
die sicher viel zu kleine einheimische Festplatte zu holen, wurde die
Funktion auf nur einen Server beschraenkt. D. h. Links, die auf einen anderen
Server verweisen, werden nicht beachtet, sondern in einer
Fehlerprotokoll-Datei aufgefuehrt. Um die Verfolgung noch weiter einzuschraenken
gibt es den optionalen Schalter -realm. -realm bewirkt, dass nur Dateien aus
dem Startverzeichnis geholt werden. Links, die zwar auf demselben Server,
jedoch in einem anderen Verzeichnis liegen, werden ebenfalls nicht geholt.
 
Wichtig: Diese Funktionalitaet gibt es schon lange. Sie funktioniert jedoch nur
zuverlaessig mit der neuesten Lynx.exe auf meiner Homepage. Selbst die von vor
zwei Tagen hat noch eine Macke (Socket failed). Es tut mir ja leit, aber ihr
muesstet euch nochmals bemuehen, die Lynx.exe vom 19. November bei mir zu holen.
Nicht wundern, sie traegt dieselbe Versionsnummer.
 
Beispiele:
lynx -traversal -dump http://www.heise.de/newsticker/
Faengt im angegebenen Verzeichnis an, holt alle Artikel. Leider steht in jeder
Datei jedoch z. B. ein Link zum Inhaltsverzeichnis. Daher springt lynx aus
/newsticker/ heraus. Im Endeffekt habe ich irgendwann den ganzen Server zu
Hause, weil natuerlich uebers Inhaltsverzeichnis auch ganz andere Verzeichnisse
des Servers geholt werden. Die Ausgabe erfolgt nach stdout.
 
lynx -traversal -crawl http://www.heise.de/newsticker/
Wie oben, nur wird jede Datei als Ascii in einer separaten Datei gespeichert.
 
lynx -traversal -crawl -realm http://www.heise.de/newsticker/
Wohl die beste Moeglichkeit. Es werden nur die Dateien im Verzeichnis
/newsticker/ geholt. Links zum Inhalts- oder Stichwoerterverzeichnis und zu
anderen Artikeln auf dem Server werden nicht beachtet.
 
Wenn Lynx mit allen Links durch ist, beendet es sich. Ansonsten wird die
Aktion nur von der Groesse der Festplatte beschraenkt. Man kann zwischendurch
aber gefahrlos mit ctrl+c abbrechen. Man kann auch die Cursor-Verfolgung der
Zeile abkoppeln und die Zeile z. B. auf die erste Bildschirmzeile setzen. Dann
sieht man immer den Titel der gerade bearbeiteten Seite. So weiss man, wo man
ist.
 
Auf diese Weise hat sich Holger gestern Abend die Hamburger Morgenpost nach
Hause geholt.
 
Happy Surfing!