Wie erhalte ich mit wget den Text einer Seite ohne HTML?

Wie erhalte ich mit wget den Text einer Seite ohne HTML?

Wenn ich wget auf einer Webseite ausprobiere, erhalte ich die Seite als HTML. Ist es möglich, nur den Text einer Datei ohne zugehöriges HTML abzurufen? (Das ist für mich erforderlich, da einige der HTML-Seiten C-Programme enthalten, die mit HTML-Tags heruntergeladen werden. Ich muss sie im Browser öffnen und den Text manuell kopieren, um eine C-Datei zu erstellen.)

Antwort1

wgetruft nur das Dokument ab. Wenn das Dokument im HTML-Format vorliegt, möchten Sie das Ergebnis der Dokumentanalyse.

Sie könnten beispielsweise verwenden lynx -dump -nolist, wenn Luchse in der Nähe sind.

lynxist ein leichter, einfacher Webbrowser, der über die -dumpFunktion verfügt, das Ergebnis des Analysevorgangs auszugeben. -nolistVermeidet die Linkliste am Ende, die angezeigt wird, wenn die Seite Hyperlinks enthält.

Wie von @Thor erwähnt, elinkskann dies auch dafür verwendet werden, da es auch eine -dumpOption hat (und -no-referencesdie Liste der Links weglassen muss). Dies kann insbesondere dann nützlich sein, wenn Sie über eine Site mit -seufz-Frames (MTFBWY) gehen.

Bedenken Sie auch, dass Sie das Ergebnis überprüfen müssen, um sicherzustellen, dass es nichts weiter als C-Code enthält, es sei denn, die Seite besteht tatsächlich nur aus C-Code mit HTML-Tags.

Antwort2

Wenn Sie diese anderen Tools nicht installiert haben, sondern nur wget, und die Seite keine Formatierung, sondern nur einfachen Text und Links enthält, z. B. Quellcode oder eine Dateiliste, können Sie das HTML mit sed wie folgt entfernen:

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

Dabei wird wget verwendet, um den Quelltext der Seite auf STDOUT auszugeben, und sed, um sämtliche < >-Paare und alles dazwischen zu entfernen.

Sie können die Ausgabe des sed-Befehls dann mit > in die zu erstellende Datei umleiten:

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).

Am einfachsten ist es wahrscheinlich, die Datei mit Ihrem Texteditor aufzuräumen (oder mit einem Quellformatierer, wenn Sie C-Quellcode herunterladen).

Wenn Sie mit jeder Zeile der Datei dasselbe Einfache tun müssen, können Sie einen entsprechenden Befehl in den sed-Befehl aufnehmen (hier wird ein führendes Leerzeichen entfernt):

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

Antwort3

nur um ein weiteres Tool hinzuzufügen. Ich bevorzuge w3m, das ist lynxwie ein Konsolenbrowser. Vielleicht möchten Sie nachsehen, was auf Ihrem System bereits verfügbar ist.

w3m -dump website.html

verwandte Informationen