私の母国語は英語ではありません。文法的エラーがある場合はご了承ください。
誰もが本は良い友達であり、無知を取り除くというオンライン図書館を持っていますが、英語が上手ではなく、本のテキストをダウンロードしてGoogle翻訳CLIを使って母国語に翻訳することにしました。
https://kpu.pressbooks.pub/political-ideologies/front-matter/introduction/
そのため、w3m cli Webブラウザをインストールし、w3m cli Webブラウザを使用して上記のWebサイトにアクセスしましたが、ここでは出力に改行文字がありません。 w3m
ただし、このWebサイトの出力をファイルに保存すると、改行が発生します。
コマンドは
- w3m>file.txtまたは
- 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.html
HTMLタグなどのgrep関連コンテンツを選択してください。維持したい本文の上、下の内容です。上記のWebページの例では、main id
とを使用しました/main
。
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