如何获取“ HTTPS”链接以及如何在python中将epub转换为txt?

问题描述 投票:1回答:2

我想将epub转换为txt。我首先通过zipfile将epub转换为xhtml。然后我尝试通过beautifulsoup将xhtml转换为epub。

但是,由于本地文件名,因此出现问题。例如,MY xhtml文件名是“ C:\ Users \ abc.xhtml”,而不是“ HTTPS”。因此beautifulsoup无法正常工作。

我该如何解决?

'''
import zipfile

zf = zipfile.ZipFile('C:\\Users\\abc.epub')
zf.extractall('C:\\Users\\Desktop\\folder')
'''
import re, requests
from bs4 import BeautifulSoup
html = "C:\\Users\\abc.xhtml"

soup = BeautifulSoup(html, 'lxml')
print(soup.text)
python beautifulsoup epub
2个回答
0
投票

BeautifulSoup构造函数需要html文件而不是url的实际内容。试试这个:

with open(html) as f:
    contents = f.read()
soup = BeautifulSoupd(contents, 'lxml')

0
投票

您不需要BeautifulSoup进行提取。

您可以使用epub-conversion包将.epub文件转换为文本,可从PyPi安装:

pip install epub-conversion

现在,从epub存档中提取文本是一个简单的任务:

逐行:

from epub_conversion.utils import open_book, convert_epub_to_lines

book = open_book("some_file.epub")

lines = convert_epub_to_lines(book)

现在,正如您所提的问题,您可以将其整体打印或选择处理每一行:

print(lines)

# or traverse each line
for line in lines:
    print(line) # Or do something completely different 

© www.soinside.com 2019 - 2024. All rights reserved.