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
wget
ruft 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.
lynx
ist ein leichter, einfacher Webbrowser, der über die -dump
Funktion verfügt, das Ergebnis des Analysevorgangs auszugeben. -nolist
Vermeidet die Linkliste am Ende, die angezeigt wird, wenn die Seite Hyperlinks enthält.
Wie von @Thor erwähnt, elinks
kann dies auch dafür verwendet werden, da es auch eine -dump
Option hat (und -no-references
die 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 lynx
wie ein Konsolenbrowser. Vielleicht möchten Sie nachsehen, was auf Ihrem System bereits verfügbar ist.
w3m -dump website.html