Преобразование 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.

Я также хотел бы предложить вам взглянуть на html2text.
Также взгляните на другую ветку

Другие вопросы по тегам