2 Stimmen

Ähnlichkeiten zwischen Textblöcken in mehreren HTML-Dokumenten finden?

Wenn ich z.B. 20 HTML-Seiten habe und die gemeinsamen/ähnlichen Teile der Dokumente extrahieren möchte, welche effizienten Möglichkeiten gibt es, das zu tun?

So sagen für StackOverflow, Vergleich 10 Seiten würde ich feststellen, dass die obere Leiste und die Hauptmenüleiste sind die gleichen auf jeder Seite, so konnte ich sie herausziehen.

Es sieht so aus, als bräuchte ich entweder ein Diff-Programm oder einige komplexe Regexps, aber ich gehe davon aus, dass ich die Seiten/Text/html-Struktur vorher nicht kenne.

Ist dies möglich?

1voto

Ira Baxter Punkte 91118

Sie sollten eine Klon-Detektor wie CloneDR . Gute Programme vergleichen die Struktur von Tausenden von Dateien auf einmal, unabhängig von der Formatierung, und sagen Ihnen, welche Elemente die Dateien gemeinsam haben und wie sich diese gemeinsamen Elemente unterscheiden.

CloneDR wurde bereits in vielen Programmiersprachen eingesetzt. Seine Grundlage, das DMS Software Reengeering Toolkit, verarbeitet bereits (schmutziges) HTML, so dass es ziemlich einfach wäre, einen HMTL-CloneDR zu erstellen.

0voto

Justin L. Punkte 13196

Sie brauchen keine komplexen Regexps; ein einfacher Diff-Analyzer reicht aus. Führen Sie einfach eine (aufzählbare) Injektion durch und behalten Sie nur ähnliche Teile wie Ihr Memo.

Hier sind einige in Ruby:

  • ruby-diff -- Implementiert den Text-Diff-Algorithmus aus Perl
  • diff-lcs
  • HTMLdiff -- Findet den Unterschied zwischen zwei Zeichenketten und rendert sie mit hübscher Formatierung (HTML) (wahrscheinlich nicht genau das, was Sie wollen, es sei denn, Sie können alles Nicht-Diff-Material aus der Ausgabe entfernen)

Ich hoffe, das hilft!

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