如何使用 python 正确地抓取 ePub?

问题描述 投票:0回答:0

我正在尝试抓取 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)

这是我能够想出的代码。

python web-scraping beautifulsoup xhtml epub
© www.soinside.com 2019 - 2024. All rights reserved.