Frage

Diese Frage hat bereits eine Antwort hier:

Ich will zu kratzen einige Informationen aus einer football (soccer) web-Seite mit einfachen python regexp ist.Das problem ist, dass die Spieler wie die erste chap, ÄÄRITALO, kommt als ÄÄRITALO!
Html verwendet entkommen markup für die Sonderzeichen wie Ä

Gibt es eine einfache Möglichkeit, das Lesen der html-Code in die richtige python string?Wenn es XML/XHTML-es würde leicht sein, der parser würde es tun.

War es hilfreich?

Lösung

Ich würde empfehlen BeautifulSoup für HTML-scraping.Sie müssen auch sagen, es zu konvertieren, HTML-Entitäten in das entsprechende Unicode-Zeichen, wie so:

>>> from BeautifulSoup import BeautifulSoup    
>>> html = "<html>&#196;&#196;RITALO!</html>"
>>> soup = BeautifulSoup(html, convertEntities=BeautifulSoup.HTML_ENTITIES)
>>> print soup.contents[0].string
ÄÄRITALO!

(Es wäre schön, wenn die standard - codecs Modul enthalten einen codec für diese, so dass Sie könnte tun "some_string".decode('html_entities') aber leider ist es nicht!)

EDIT: Eine andere Lösung:Python-Entwickler Fredrik Lundh (Autor von elementtree, unter anderem) eine Funktion unsecape HTML-entities auf seiner website, die arbeitet, mit dezimal -, hex-und named entities (BeautifulSoup wird nicht Arbeit mit die hex ones).

Andere Tipps

Versuchen Sie es mit BeautifulSoup.Es sollte den trick tun und geben Sie eine schön formatierte DOM-mit so gut funktionieren.

Dieser blog Eintrag zu haben scheint, hatte einen gewissen Erfolg mit es.

Ich habe nicht selber ausprobiert, aber haben Sie versucht,

http://zesty.ca/python/scrape.html ?

Es scheint eine Methode htmldecode(text), welche alles tun würde, was Sie wollen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top