GNU/Linux >> Linux の 問題 >  >> Linux

HTMLなしでwgetを使用してページのテキストを取得するには?

wget ドキュメントのみを取得します。ドキュメントが HTML の場合、ドキュメントを解析した結果が必要です。

たとえば、 lynx -dump -nolist を使用できます 、近くにオオヤマネコがいる場合。

lynx -dump を持つ軽量でシンプルな Web ブラウザです。 解析プロセスの結果を出力するために使用される機能。 -nolist ページにハイパーリンクがある場合に表示される、末尾のリンクのリストを回避します。

@Thor で言及されているように、elinks -dump も持っているので、これにも使用できます オプション (および -no-references を持っています) リンクのリストを省略します)。これは、-sigh- フレーム (MTFBWY) を使用してサイトを横断する場合に特に役立ちます。

また、ページが実際に HTML タグ付きの C コードである場合を除き、結果をチェックして、そこに C コードしかないことを確認する必要があることに注意してください。


これらの他のツールがインストールされておらず、wget のみであり、ページにプレーン テキストとリンクのみの書式設定がない場合。ソース コードまたはファイルのリストの場合、次のように sed を使用して HTML を削除できます:

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

これは、wget を使用してページのソースを STDOUT にダンプし、sed を使用して <> ペアとそれらの間のすべてを取り除きます。

> :

を使用して、sed コマンドの出力を作成するファイルにリダイレクトできます。
wget -qO- http://.../ | sed -e 's/<[^>]*>//g' > downloaded_file.txt

注意:ファイル内に必要のない余分な空白がある場合があります (例:行が数列分インデントされている)

テキスト エディタを使用してファイルを整理するのが最も簡単な場合があります (または、C ソース コードをダウンロードする場合はソース フォーマッタを使用します)。

ファイルのすべての行に対して同じ単純なことを行う必要がある場合は、それを行うコマンドを sed コマンドに含めることができます (ここでは先頭のスペースを 1 つ削除しています):

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

別のツールを追加するだけです。私は w3m が好きです 、これは lynx です コンソールブラウザのように。あなたのシステムですでに利用可能なものをチェックしたいかもしれません.

w3m -dump website.html

Linux
  1. Debian – GUIを使用せずにDebianをテキストモードで起動する方法は?

  2. InstantSiteを使用してページ要素を追加する方法

  3. マウスなしで xterm からテキストをコピーするにはどうすればよいですか?

  1. シェル変数でWebページのコンテンツを取得するには?

  2. sed を使用してテキスト ブロックを削除する

  3. sed - sed を使用して正規表現グループを作成する方法

  1. HTMLをテキストに変換するには?

  2. Linux を使用して、テキスト内のスペルミスのあるすべての単語のリストを取得するにはどうすればよいですか?

  3. rm を使わずにファイルを削除するには?