Преобразование html в текст только с использованием стандартной библиотеки Python
Я ищу лучший способ конвертировать HTML в текст, используя только модули из стандартной библиотеки Python 2.7.x. (Т.е. нет BeautifulSoup
, так далее.)
Под преобразованием HTML в текст я имею в виду моральный эквивалент lynx -dump
, На самом деле, достаточно просто избавиться от тегов HTML и преобразовать все объекты HTML в ASCII (или в кодировку UTF8 в кодировке UTF8).
Нет ответов на основе регулярных выражений, пожалуйста. (Регулярные выражения не соответствуют задаче.)
Спасибо!
2 ответа
Python с версии 2.2 имеет модуль HTMLParser. Это не самое эффективное и не простое использование, но оно есть...
И если вы имеете дело с правильным XHTML (или вы можете передать его через Tidy), вы можете использовать намного лучший ElementTree
from xml.etree.ElementTree import ElementTree
tree = ElementTree()
tree.parse("your_document.xhtml")
your_string = tree.tostring(method="text", encoding="utf-8")
Я написал действительно простой скрипт на Python, который извлекает заголовки и абзацы только из файлов HTML без использования сторонних библиотек. Примечание. Этот скрипт очень прост и может работать только с очень простым HTML. И написано в Python 3
#!/usr/bin/env python3
import os
#This is a standard python module
headings = "<h1>"
paragraphs = "<p>"
f = open('filename.html')
f.close
for line in f:
if headings in line:
print ("line")
If paragraphs in line:
print ("line")
Вы все еще можете расширить эту идею и заставить ее извлекать больше материала из файла HTML.