GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie bekomme ich Text einer Seite mit wget ohne HTML?

wget wird nur das Dokument abrufen. Wenn das Dokument in HTML vorliegt, möchten Sie das Ergebnis der Analyse des Dokuments.

Sie könnten zum Beispiel lynx -dump -nolist verwenden , wenn Sie Luchse in der Nähe haben.

lynx ist ein leichter, einfacher Webbrowser, der den -dump hat Funktion, die verwendet wird, um das Ergebnis des Parsing-Prozesses auszugeben. -nolist vermeidet die Linkliste am Ende, die erscheint, wenn die Seite Hyperlinks enthält.

Wie von @Thor erwähnt, elinks kann auch dafür verwendet werden, da es auch einen -dump hat Option (und hat -no-references um die Linkliste wegzulassen). Es kann besonders nützlich sein, wenn Sie mit -sigh-frames (MTFBWY) über eine Site gehen.

Denken Sie auch daran, dass Sie das Ergebnis überprüfen müssen, es sei denn, die Seite ist wirklich nur C-Code mit HTML-Tags, nur um sicherzustellen, dass dort nichts weiter als C-Code vorhanden ist.


Wenn Sie diese anderen Tools nicht installiert haben, verwenden Sie nur wget, und die Seite hat keine Formatierung, nur einfachen Text und Links, z. Quellcode oder eine Liste von Dateien, können Sie den HTML-Code mit sed wie folgt entfernen:

wget -qO- http://address/of/page/you/want/to/view/ | sed -e 's/<[^>]*>//g'

Dies verwendet wget, um die Quelle der Seite nach STDOUT zu kopieren, und sed, um alle <> Paare und alles dazwischen zu entfernen.

Sie können die Ausgabe des Befehls sed dann mit> :

auf die Datei umleiten, die Sie erstellen möchten
wget -qO- http://.../ | sed -e 's/<[^>]*>//g' > downloaded_file.txt

NB:Möglicherweise stellen Sie fest, dass die Datei zusätzliche Leerzeichen enthält, die Sie nicht möchten (z. B. sind Zeilen um einige Spalten eingerückt)

Es kann am einfachsten sein, Ihren Texteditor zu verwenden, um die Datei aufzuräumen (oder einen Quellformatierer, wenn Sie C-Quellcode herunterladen).

Wenn Sie dieselbe einfache Sache mit jeder Zeile der Datei machen müssen, könnten Sie einen Befehl dazu in den Befehl sed aufnehmen (hier ein führendes Leerzeichen entfernen):

wget -qO- http://.../ | sed -e 's/<[^>]*>//g;s/^ //g' > downloaded_stripped_file.txt

nur um ein weiteres Tool hinzuzufügen. Ich bevorzuge w3m , was ein lynx ist wie Konsolenbrowser. Vielleicht möchten Sie überprüfen, was bereits auf Ihrem System verfügbar ist.

w3m -dump website.html

Linux
  1. Wie lösche ich mehrere zufällige Zeilen aus einer Textdatei mit Sed?

  2. So fügen Sie Seitenelemente mit InstantSite hinzu

  3. So erhalten Sie eine bestimmte Speicheradresse mit C

  4. Wie bekomme ich den Inhalt einer Webseite in eine Shell-Variable?

  5. sed - wie man Regex-Gruppen mit sed erstellt

So wechseln Sie automatisch zu einem Verzeichnis, ohne den Cd-Befehl in Linux zu verwenden

So sperren Sie eine Textdatei in Linux mit dem Befehl flock

So löschen Sie ausgewählten Text im vi-Editor

Wie bringe ich sed dazu, von der Standardeingabe zu lesen?

So entfernen Sie Nicht-ASCII-Zeichen mit sed

Wie füge ich mit sed Text in die erste Zeile einer Datei ein?