Die Bearbeitung von HTML 5 Entities

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Daikoku
User
Beiträge: 66
Registriert: Montag 20. April 2015, 21:14

Eine kurze Zusammenfassung aus meinen Threat "special characters HTML und Unicode".

Die Bearbeitung von HTML 5 Entities ist mit der Python 2.7.xx Standard Libary nicht möglich.
Diese Libary deckt HTML 4 und XHTML 1.x W3C konform ab.

Alles was mit
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
oder
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

darstellbar ist, kann auch mit der Python 2.7.xx Standard Libary problemlos bearbeitet werden.

Code: Alles auswählen

import HTMLParser
  
html_chars = '"&apos;&>&nbsp;&yacute;'
parser = HTMLParser.HTMLParser()
print parser.unescape(html_chars)
Zur Lösung meines Problemes mit den HTML 5 Entities unter Python 2.7.xx,
wurden mir folgende Vorschläge zur Erweiterung der Standard Libary gemacht :

(1.) html5charref 0.1.0
A Python library for escaping/unescaping HTML5 Named Character References.
Siehe : https://pypi.python.org/pypi/html5charref

Dieses Programm funktioniert und ermöglicht ein korrektes W3C konformes bearbeiten der HTML5 Entities.
Die Installation verlief bei mir problemlos und die Dokumentation steht direkt im Sourcecode, ist aber auch online verfügbar.
Das Programm bietet die Besonderheit, dass eine Funktion zum direkten updaten der HTML5 Entities, direkt von dev.w3.org vorhanden ist.
Ansonsten ist der Programmcode an HTMLParser.py der Python 2.7.xx Standard Libary angelegt.
Das Modul ist klein, schnell und bietet alle Funktionen die man benötigt. Mit anderen Worten das Modul macht genau das, was man auch erwartet.
Wer das direkte Updaten nutzen möchte, muss vorher noch beautifulsoup und requests installieren.


(2.) beautifulsoup4
A Screen-scraping library
siehe : https://pypi.python.org/pypi/beautifulsoup4

Um es kurz zu machen, beautifulsoup kann viel, sehr viel, aber leider nicht mit HTML5 Entities umgehen. NoWay.
Darüber hinaus ist beautifulsoup auch nicht unbedingt schnell in der Verarbeitung. Überlege daher genau, was Du machen
möchtest, manchmal kann eine selbst geschriebene Funktion der bessere Weg sein.


Fazit :
unter Python 2.7.xx führt aus meiner Sicht, zur Zeit kein Weg an html5charref vorbei, wenn mann HTML5 Entities bearbeiten möchte.

ab Python Version 3.3 wird das Bearbeiten von HTML5 Entities von der Standard Libary W3C konform abgedeckt.
siehe Doku : https://docs.python.org/3/library/html. ... ties.html5

Mein Dank geht an Alle, die zu diesen Erkenntnissen beigetragen haben.
Antworten