Как получить ссылку "HTTPS" и Как конвертировать epub в txt в python? - PullRequest
1 голос
/ 29 февраля 2020

Я хочу конвертировать epub в txt. Сначала я делаю epub для x html по zipfile. и затем я пытаюсь преобразовать x html в epub с помощью Beautifulsoup.

Однако существует проблема из-за локального имени файла. Например, имя файла MY x html: "C: \ Users \ ab c .x html", а не "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)

Ответы [ 2 ]

0 голосов
/ 29 февраля 2020

Вам не нужен BeautifulSoup для извлечения.

Вы можете конвертировать файлы .epub в текст, используя пакет epub-conversion, устанавливаемый из 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 

0 голосов
/ 29 февраля 2020

Конструктор BeautifulSoup ожидает фактическое содержимое файла html, а не URL. Попробуйте это:

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