378 Stimmen

HTML-Entitäten in Python-Strings dekodieren?

Ich analysiere gerade HTML mit Beautiful Soup 3, aber es enthält HTML-Entities, die Beautiful Soup 3 nicht automatisch für mich dekodiert:

>>> from BeautifulSoup import BeautifulSoup

>>> soup = BeautifulSoup("<p>&pound;682m</p>")
>>> text = soup.find("p").string

>>> print text
&pound;682m

Wie kann ich die HTML-Entitäten in text zu bekommen "£682m" anstelle von "&pound;682m" .

-5voto

Neil Aggarwal Punkte 483

Dies ist hier wahrscheinlich nicht relevant. Aber diese HTML-Entitäten aus einem ganzen Dokument zu beseitigen, können Sie etwas wie folgt tun: (Nehmen Sie Dokument = Seite und bitte verzeihen Sie den schlampigen Code, aber wenn Sie Ideen haben, wie man es besser machen, Im alle Ohren - Im neu zu diesem).

import re
import HTMLParser

regexp = "&.+?;" 
list_of_html = re.findall(regexp, page) #finds all html entites in page
for e in list_of_html:
    h = HTMLParser.HTMLParser()
    unescaped = h.unescape(e) #finds the unescaped value of the html entity
    page = page.replace(e, unescaped) #replaces html entity with unescaped value

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X