dak ブログ

python、rubyなどのプログラミング、MySQL、サーバーの設定などの備忘録。レゴの写真も。

epub 形式のファイルから本文のテキストを抽出する方法

2020-07-23 15:04:55 | python
epub 形式のファイルから本文のテキストを抽出する方法のメモ。

epub 形式のファイルでは、本文が p タグに記述されているため、p タグ内のテキストを抽出します。
ただし、ruby タグなど他のタグが含まれる場合があるため、不要なタグを除去する必要があります。
import lxml.etree
import ebooklib
from ebooklib import epub

def remove_tag(elem):
    text = lxml.etree.tostring(elem, encoding='utf-8').decode('utf-8')
    text = re.sub('(?:.*?|.*?)','', text)
    text = re.sub('<.*?>', '', text)
    return text

epub_path = "{epubファイル}"
book = epub.read_epub(epub_path)

for item in book.get_items_of_type(ebooklib.ITEM_DOCUMENT):
    dom = lxml.html.fromstring(item.get_content())
    text_nodes = dom.xpath("//p")
    for text_node in text_nodes:
        text = remove_tag(text_node)
        print(text)


この記事についてブログを書く
« awk で tsv の特定カラムの文... | トップ | wordファイル(.docx)から本... »

python」カテゴリの最新記事