Pythonでtextminerを使用しHTMLから単一の値(テキスト)を抽出する

Pythonでtextminerを使用しHTMLから単一の値(テキスト)を抽出してみます。

textminerは、Pythonの標準ライブラリではありませんので、事前にインストールする必要があります。

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)

■textminerを使用しHTMLから単一の値(テキスト)を抽出する

では、早速textminerを使用しHTMLから単一の値(テキスト,文字列)を抽出するスクリプトを書いていきます。

■コード

import textminer

html = "<html lang='ja'><head><title>私のホームページ</title></head><body><div>こんにちは、世界</div></body></html>"

rule = '''
value:
    prefix:<div>
    sufix:</div>
'''

result = textminer.extract(html,rule)

print(result)

HTMLから単一の値(テキスト,文字列)を抽出するために、textminerをimportで呼び出し、htmlという変数を定義。定義した変数にhtmlタグを格納します。

格納後、htmlという変数を定義。ruleという変数を定義し、その中にルールを格納します。今回は始まりのタグが「<div>」で終わりのタグが「</div>」というルールを格納します。

格納後、textminer.extract()関数を使用します。関数の括弧内には第1の引数,パラメータとしてhtml変数を渡します。第2の引数,パラメータとして、rule変数を渡します。

これでHTMLからdivタグ内の値(今回はテキスト,文字列)を抽出することができます。

抽出した値(テキスト,文字列)をprint()関数で出力します。

■実行・検証

このスクリプトを「extract_single_val_from_html.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。

Traceback (most recent call last):
File "extract_single_val_from_html.py", line 1, in <module>
import textminer
File "C:\Users\user_\AppData\Roaming\Python\Python38\site-packages\textminer\__init__.py", line 3, in <module>
from textminer.main import compile, extract, extract_from_url
File "C:\Users\user_\AppData\Roaming\Python\Python38\site-packages\textminer\main.py", line 2, in <module>
from loggingd import log_enter
File "C:\Users\user_\AppData\Roaming\Python\Python38\site-packages\loggingd\__init__.py", line 5, in <module>
from loggingd.decorators import LogAndIgnoreError, LogEnter, LogError, LogReturn
File "C:\Users\user_\AppData\Roaming\Python\Python38\site-packages\loggingd\decorators.py", line 5, in <module>
from decorated import WrapperFunction
File "C:\Users\user_\AppData\Roaming\Python\Python38\site-packages\decorated\__init__.py", line 13, in <module>
from decorated.decorators.timeit import TimeIt
File "C:\Users\user_\AppData\Roaming\Python\Python38\site-packages\decorated\decorators\timeit.py", line 12, in <module>
timer = time.clock
AttributeError: module 'time' has no attribute 'clock'

実行してみると、AttributeErrorというエラーが発生しました。エラーの発生原因を調べてみると、textminerライブラリは、Python2.7およびPython3.3でテストされていますが、Python3.8ではテストされていない模様で、おそらくPython3.8ではtextminerライブラリは未対応という結論に至りました。機会があれば、Python2.7およびPython3.3で実行を検証します。

コメント

タイトルとURLをコピーしました