wgetコマンドの後に得られたすべてのhtmlファイルをテキストファイルに変換するには?

wgetコマンドの後に得られたすべてのhtmlファイルをテキストファイルに変換するには?

wgetコマンドの後に得られたすべてのhtmlファイルをプレーンテキストファイルに変換するには?

使用を検討しています。サルクHTMLファイルを「.txt」ファイルに変換してタグを削除します。

ウェブサイト全体を保存するこのコードスニペットがありますが、ローカルフォルダ「test」の「foobar」ウェブサイトのhtmlファイルから変換されたテキストファイルのみを保持するようにコードをどのように変更しますか?

wget -P /test/ --recursive http://foobar.html

何をすべきかわからないパイプで接続するサルクそして指定する方法特定のディレクトリ内のすべてのファイルにコマンドを適用する

答え1

wgetおそらく正しいツールではないでしょう。 Lynxはファイルをダウンロードして同時にプレーンテキストに変換できますが、出力をファイルにリダイレクトしてこれを行います。オプションがないため、-output出力名を指定する必要があるため、スクリプトで使用するのはやや厄介です。

ただし、.htmlディレクトリがファイルでいっぱいであると仮定すると、ディレクトリをfind繰り返して、次のようにファイルを変換できます。

#!/bin/sh
find . -type f -name '*.htm*' | while IFS= read path
do
    lynx -dump "$path" >"${path%%.htm*}.txt"
done

".txt"ファイルを同じツリーに配置するか、

#!/bin/sh
find . -type f -name '*.htm*' | while IFS= read path
do
    target=${path/foobar/test}
    lynx -dump "$path" >"${target%%.htm*}.txt"
done

「test」フォルダにあります(「foobar」を「test」にマッピング)。 「/」置換は bash に固有のもので、POSIX にはありません (ただし、sedPOSIX を使用することを選択した場合はうまく機能します)。

追加資料:

答え2

スケジュールに従ってHTMLファイルにダウンロードしてから、コマンドラインユーティリティを使用できますhtml2text

https://stackoverflow.com/questions/30015809/html2text-convert-special-characters

関連情報