Extracting text from epub with python - ํ์ด์ฌ์ผ๋ก epub์์ ํ ์คํธ ๋ฝ๊ธฐ
ai ์๊ฒ ๋จน์ผ ๋ฐ์ดํฐ๋ฅผ ์๋ฆฌ์ค์ด๋ค.
๊ฐ์ง๊ณ ์๋ epub๋ค์ด ์กฐ๊ธ ์๋๋ฐ ์ด๋๋ก๋ ๋จน์ผ ์ ์์ผ๋ ๋ชจ๋ text๋ก ๋ฐ๊ฟ๋์ผํ๋ค.
๊ทธ๋ฐ๋ฐ ์๊ฐ๋ณด๋ค ์๋ฃ๊ฐ ์์๋ค.
ํนํ ํ๊ธ๋ค์ด ๋ชจ๋ ๊นจ์ ธ๋์๋ค.
calibre๋ฅผ ์ถ์ฒํ๊ธฐ์ ์ค์นํ convert ํด๋ดค๋๋ ์ถ๋ ฅ ํด๋๋ฅผ ์ ํํ ์ ์์ด ์ด๊ฒ๋ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฝค๋ ๊ท์ฐฎ์ ์์
์ด์๋ค - ํ์ง๋ง ํ์ด์ฌ์ผ๋ก ๋๋ด ์คํจํ๋ค๋ฉด ์ด๋ ๊ฒ๋ผ๋ ์์
ํ ํ txtํ์ผ๋ค์ ๋ชจ๋ ์ฐพ์ ํ๋ฒ์ ๋ชจ์ผ๋ ์ฝ๋๋ฅผ ๋ง๋ค ์์ ์ด์๋ค.. ์ง๋ง ํ์ด์ฌ์ผ๋ก ํด๊ฒฐํ๋ค.
๋จผ์ EbookLib๋ฅผ ์ค์นํ๋ค
1. pip install EbookLib
https://pypi.org/project/EbookLib/
EbookLib
Ebook library which can handle EPUB2/EPUB3 and Kindle format
pypi.org
- doc ๋ ์ดํด๋ณด์. ๊ทผ๋ฐ ์ข ๋ถ์กฑํ๋ค
https://docs.sourcefabric.org/projects/ebooklib/en/latest/tutorial.html#introduction
Tutorial — EbookLib 0.17 documentation
Creating EPUB from ebooklib import epub book = epub.EpubBook() EPUB has some minimal metadata requirements which you need to fulfil. You need to define unique identifier, title of the book and language used inside. When it comes to language code recommende
docs.sourcefabric.org
2. This is codes
import ebooklib
from ebooklib import epub
from bs4 import BeautifulSoup
book = epub.read_epub('./tear.epub')
result = book.get_metadata('DC', 'language') # ์ด๋ค ์ธ์ด๋ก ๋์ด ์๋์ง ํ์ธํ ์ ์๋ค
for idx, doc in enumerate(book.get_items_of_type(ebooklib.ITEM_DOCUMENT)):
book = doc.content
soup = BeautifulSoup(book, 'html.parser')
soup = soup.select('p')
for pTag in soup:
print(pTag.text)
3. ์๋ง์ ์ต์ ์ ์ฐพ๋๋ฐ ๊ณ ์์ ์ข ํ๋ค.
- ํ๊ธ ๋ฌธ์ ์ ๊ฒฝ์ฐ stackoverflow๋ ํฐ ๋์์ด ๋์ง ์๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ๊ธ ๋ฌธ์ ๋ ์๋์๋ค.
- idx๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด enumerate๋ฅผ ์ผ์ง๋ง ์ด ๊ฒฝ์ฐ ๋ฒ์ฉ์ฑ์ด ๋จ์ด์ ธ ๊ทธ๋ฅ doc๋ง ์ฌ์ฉํ๋ค. ์ฑ ์ ํน์ ์ ๋ณด๋ง ๋ฝ์์ ์ฒ๋ฆฌํ๊ณ ์ถ๋ค๋ฉด ์ฐ๋ ๊ฒ๋ ์ข๊ฒ ๋ค.
4. ์ฑ
์ ๋ชฉ์ book.get_metadata('DC', 'title') ์ด๋ ๊ฒ ๊ฐ์ ธ์ฌ ์ ์๋ค.
- ์ด๊ฑธ๋ก ํ์ผ๋ช ์ ๋ง๋ค์ด ํด๋ ํ๋์ ์ ์ฅํ๋ฉด ๋ชจ๋ epubํ์ผ์ ํ๋ฒ์ txt๋ก ๋ง๋ค์ ์๊ฒ ๋ค.