사이드 프로젝트/텔레그램으로 전자책 읽기 📙
python으로 epub 목차 가져오기
직장인 조모씨
2024. 10. 22. 11:33
728x90
반응형
python으로 epub 목차 가져오기
처음에는 toc.ncx 을 읽어 하나 하나 파싱하려고 했는데
좋은 라이브러리가 있었다.
book 객체에 epub 정보 담아두고
book.toc 불러오면 바로 읽히더라 굿
import ebooklib
from ebooklib import epub
from bs4 import BeautifulSoup
# EPUB 파일의 목차를 리스트로 저장하는 함수 (book.toc 사용)
def get_toc(epub_file):
book = epub.read_epub(epub_file)
# book.toc을 통해 목차 정보 가져오기
toc_list = []
def parse_toc(toc_items):
for item in toc_items:
if isinstance(item, tuple):
toc_list.append((item[0].title, item[0].href)) # 제목과 파일 경로 저장
if item[1]: # 하위 항목이 있는 경우 재귀적으로 처리
parse_toc(item[1])
else:
toc_list.append((item.title, item.href))
parse_toc(book.toc)
return toc_list, book
html 파일 순서 알아내는 방법
이건 content.opf 파일에 들어있는데, spine 항목을 보면 된다.
마찬가지로 book.spine을 이용하면 됨.
728x90
반응형