改行なしのw3mウェブサイトのダンプ

改行なしのw3mウェブサイトのダンプ

私の母国語は英語ではありません。文法的エラーがある場合はご了承ください。

誰もが本は良い友達であり、無知を取り除くというオンライン図書館を持っていますが、英語が上手ではなく、本のテキストをダウンロードしてGoogle翻訳CLIを使って母国語に翻訳することにしました。

https://kpu.pressbooks.pub/political-ideologies/front-matter/introduction/

そのため、w3m cli Webブラウザをインストールし、w3m cli Webブラウザを使用して上記のWebサイトにアクセスしましたが、ここでは出力に改行文字がありません。 w3m

ただし、このWebサイトの出力をファイルに保存すると、改行が発生します。

コマンドは

  1. w3m>file.txtまたは
  2. w3m -dump <site>> file.txt 調査した結果、各行の列サイズが 80 程度であることが確認されました。端子列のサイズは80です。つまり、改行テキストは1つの連続した段落に変換されます。だから私に解決策を提案してください。

事前にありがとう

答え1

からman w3m

   -cols num
          with  stdout  as  destination;  HTML is rendered to lines of num
          characters

答え2

私の方法はHTML抽出です。
実際の.htmlファイルをダウンロードしてください。

wget -O "kpu_intro.html" "https://kpu.pressbooks.pub/political-ideologies/front-matter/introduction/"

テキストエディタを使用するか、cat kpu_intro.htmlHTMLタグなどのgrep関連コンテンツを選択してください。維持したい本文の上、下の内容です。上記のWebページの例では、main idとを使用しました/main

grep 単語の例

cat kpu_intro.html | grep -noP 'main id'
cat kpu_intro.html | grep -noP '/main'

これにより、各単語の行番号が提供され、この番号をawkこのコマンドで使用できます。

cat kpu_intro.html | awk 'NR==184, NR==228' > content.html

メインコンテンツを切り離しましたので、次のようにしてください。HTML2テキスト作業を完了してください。

html2text --decode-errors ignore content.html ascii > kpu_intro.txt

これは何ですか?出力いいですね。

完了したら、各サイトに合わせて適応し、スクリプトを作成しやすいので、この方法をお勧めします。


修正する:

このサイトは、「一緒にスクリプト」ということが何を意味するかを示す素晴らしい例を提供します。
メニューの「目次」には、各セクションに章リンクを含む拡張可能な項目があります。

というディレクトリを作成し、my_tempそのディレクトリで端末を開きます。
以下をコピーして端末に貼り付けて実行しないでください。

xclip | grep -o -E 'href="([^"]+)"' | cut -d'"' -f2 > target_urls.txt

ここに画像の説明を入力してください。

  • 「見出し」という単語の上でマウスボタンをクリックして下にスクロールします。
  • 左の図のように強調表示されたら、青いセクションの選択を右クリックして[選択ソースの表示]をクリックします。
  • ソースが開いたら(右側に示すように)、右クリックして[すべて選択]をクリックします。青い選択をもう一度右クリックし、コピーをクリックします。 (Ctrl+AそれではCtrl+Cそれも効果があるでしょう。)

Enterを押して端末に貼り付けたコマンドを実行します。

#!/bin/bash

current_url=($(<target_urls.txt))
filename_array=()

for url in "${current_url[@]}"; do

    name_extract=$(printf "$url" | sed 's|https://kpu\.pressbooks\.pub/||g' | sed 's|/|-|g')
    name_extention=$(echo ${name_extract:0:$((${#name_extract}-1))}.html)
    filename_array+=("$name_extention")

    wget -O "${filename_array[-1]}" "$url"

    line_num_above=$(cat "${filename_array[-1]}" | grep -ion 'main id' | cut -d: -f1)
    line_num_below=$(cat "${filename_array[-1]}" | grep -ion '/main' | cut -d: -f1)
    cat "${filename_array[-1]}" | awk "NR==$line_num_above, NR==$line_num_below" > temp.html

    file_name_only=${filename_array[-1]%.*}
    html2text --decode-errors ignore temp.html ascii > "$file_name_only".txt && rm temp.html

done

rm *.html target_urls.txt

exit 0

名前を付けて保存:url2txt.sh同じディレクトリに保存します。
モード変更実行可能ファイル:chmod +x url2txt.sh
実行:./url2txt.sh

関連情報