Thread Eine Art Regex-Engine für HTML - gibt es das schon? (4 answers)
Opened by flowdy at 2012-08-11 23:02

flowdy
 2012-08-11 23:02
#160826 #160826
User since
2012-08-03
45 Artikel
BenutzerIn

user image
Hallo,

für meine Diplomarbeit vor fünf Jahren hatte ich ein Modul namens HTML::StreamFisher geschrieben. Es handelt sich dabei um eine reverse Template-Engine, das heißt, der Nutzer definiert kein Templates um Webseiten zu produzieren, sondern um existierendes HTML vom Modul lesen zu lassen und eine quasi fertige Datenstruktur aus HoA und HoH zurück zu bekommen, die er dann wie auch immer weiter verarbeitet. Das dazu definierte Template entspricht natürlich nicht dem Template auf der Serverseite, also kein "Reengineering", es ist soweit reduziert, dass das Auffinden relevanter Inhalte gerade noch maschinell möglich ist und "Beifang" (Inhalte, die strukturell dem Muster entsprechen, ohne die gewünschte Information zu enthalten) so gut wie möglich vermieden wird. Es ist eigentlich der Regex-Engine nachempfunden, arbeitet eben auf HTML-Nodes statt auf Zeichen.

Ich überlege, ob ich die Arbeit daran wieder aufnehme. Es gibt noch ein paar Features, die dem Modul gut zu Gesicht stünden und sinnvoll wären (wiederkehrende Subpatterns à la (...)*/+(?) etwa), und außerdem hat das Teil garantiert noch Bugs, die das Pech hatten, dass sie mir nicht - von den Gutachtern oder mir selbst in der Verteidigung entdeckt - die Gesamtnote vermiesen konnten.

Aber zuvor die obligatorische Frage:
  • Seht ihr Bedarf?
  • Könnte sich die Arbeit eurer Meinung nach lohnen?
  • Kennt ihr vergleichbare Module im CPAN?
  • Oder ist jeder mit HTML::TreeBuilder und Konsorten zufrieden?

Dieses hätte mich von der Entwicklung von HTML::StreamFisher auch nicht abgehalten aus dem einfachen Grunde, dass sich sich das prozessorale Navigieren durch den Baum so viel schlechter von Laien (wie meine Betreuer, die im Bibliothekswesen firm sind aber nicht in der Programmierung) überblicken und verstehen lässt als Musterdeklarationen, die im gewissen Sinne nichts anderes als HTML sind - in der Tat wird im Modul nicht nur die Webseite, sondern auch diese Musterdeklarationen durch den HTML::TokeParser vorverarbeitet.


Viele Grüße,
flowdy
package MyClass; sub new {\b\b\b\b\b\b\b\b\buse Moose;

View full thread Eine Art Regex-Engine für HTML - gibt es das schon?