<p>
の先頭に全角スペースを、</p>
の末尾に改行2つを挿入する。
成果物
やってみる
事前準備
pip3 install extractcontent3
wget -O index.html 適当なニュースサイトURL
コードを書く
run.sh
#!/usr/bin/env python3 # coding: utf8 # 事前準備 # pip3 install extractcontent3 # wget -O index.html 適当なニュースサイトURL import sys import os import extractcontent3 def format_to_text(html): import re import unicodedata st = re.sub(r"<p>([^ ])", r" \1", html) # 段落の先頭は全角スペース st = re.sub(r"</p>", "\n\n", st) # 段落の末尾は2つ改行する st = re.sub(r"</br>", "\n", st) st = re.sub(r"<br>", "\n", st) st = re.sub(r"<.+?>", "", st) # Convert from wide character to ascii if st and type(st) != str: st = unicodedata.normalize("NFKC", st) st = re.sub(r"[\u2500-\u253f\u2540-\u257f]", "", st) # 罫線(keisen) st = re.sub(r"&(.*?);", lambda x: self.CHARREF.get(x.group(1), x.group()), st) st = re.sub(r"[ \t]+", " ", st) return st.rstrip("\n\t ") print(extractcontent3.__file__) if len(sys.argv) < 1: raise Error('第1引数にHTMLファイルパスを指定してください。') exit() if not os.path.isfile(sys.argv[0]): raise Error('第1引数HTMLファイルパスが存在しません。:'+sys.argv[0]) exit() extractor = extractcontent3.ExtractContent() print(dir(extractor )) opt = {"threshold":50} extractor.set_option(opt) html = open("index.html").read() extractor.analyse(html) text, title = extractor.as_text() html, title = extractor.as_html() title = extractor.extract_title(html) print(title) print(text) print(html) print(format_to_text(html))
実行
python3 run.sh
できた。ポイントは以下。
<p>
の先頭に全角スペースが挿入される</p>
の末尾に改行コードが2つ挿入される<br>
,</br>
で改行コードが1つ挿入される
たとえば以下のように表示される。
<p>段落です。</p><p>段落2です。</p>
段落です。 段落2です。
<p>段落です。<br>改行する。</p><p>段落2です。</p>
段落です。 改行する。 段落2です。
これで日本語の文章が読みやすくなることを期待したい。
対象環境
- Raspbierry pi 3 Model B+
- Raspbian stretch 9.0 2018-11-13 ※
- bash 4.4.12(1)-release ※
- SQLite 3.29.0 ※
- MeCab 0.996ユーザ辞書
$ uname -a Linux raspberrypi 4.19.42-v7+ #1218 SMP Tue May 14 00:48:17 BST 2019 armv7l GNU/Linux