我正在尝试抓取 Epub 的内容,到目前为止我可以提取所有文本并将其粘贴到 txt 文件中。
我想要一个类似于 epub 的 txt 文档,它显示电子书的章节标题,然后是章节内容(所有章节)。 通常是您在 epub 中看到的内容,但在 txt 文档中看到的内容。
我正在使用 BeautifulSoup (lxml),因为大多数 Epub 都是 HTML/XHTML 和用于打开 epub 的 ebooklib。
由于每个 epub 彼此都有点不同,我应该怎么做才能确保代码在每个 epub 上都能正常运行。
import ebooklib
from ebooklib import epub
from bs4 import BeautifulSoup
book = epub.read_epub('The Richest Man In Babylon ( PDFDrive ).epub')
documents = []
content = ""
# find the document structure of the book
for document in book.get_items_of_type(ebooklib.ITEM_DOCUMENT):
doc_name = document.get_name()
if (("html" or "xhtml") in doc_name):
documents.append(document)
# print(documents)
for i in range(len(documents)):
soup = BeautifulSoup(documents[i].get_body_content(), "html.parser")
p = soup.find_all('body')
for para in p:
text = para.get_text()
content += text
print(text)
这是我能够想出的代码。