Wie extrahieren aussagekräftigen Text aus HTML
-
09-10-2019 - |
Frage
Ich möchte eine HTML-Seite analysieren und die aussagekräftigen Text daraus zu extrahieren. Wer weiß, einige gute Algorithmen, dies zu tun?
ich meine Anwendungen auf Rails entwickeln, aber ich denke, Rubin ein bisschen langsam in diesen, so dass ich denke, wenn eine gute Bibliothek in c dafür existiert wäre es angebracht werden.
Danke !!
PD: Bitte empfehlen Sie nichts mit Java
UPDATE: Ich fand diesen Linktext
Leider ist in Python
Lösung
Verwenden Sie Nokogiri , das schnell ist und in C geschrieben , für Ruby.
(Wildcards verwenden rekursive Ausdrücke zu analysieren wie HTML notorisch schwierig und fehleranfällig ist und ich würde diesen Weg nicht nach unten gehen . ich dies nur in der Antwort erwähnen, wie dieses Problem immer wieder auftauchen scheint.)
Mit einem echten Parser wie zum Beispiel Nokogiri oben erwähnt, können Sie auch den zusätzlichen Vorteil erhalten, dass die Struktur und Logik des HTML-Dokuments erhalten bleibt, und manchmal braucht man wirklich diese Hinweise.
Andere Tipps
Lösungen mit Ruby-Integration
- verwenden Nokogiri wie recommended von Amigable Clark kant
- Verwenden Sie Hpricot
Externe Lösungen
- Wenn Sie Ihre HTML gut ausgebildet ist, können Sie die Expat XML Parser für diese.
- Für etwas mehr in Richtung gezielte HTML-only, das W3C veröffentlicht tatsächlich den Code für die libwww , die enthält ein einfachen HTML-Parser ( Dokumentation ).
Lynx ist in der Lage, dies zu tun. Dies ist Open Source, wenn Sie einen Blick auf sie nehmen.
Sie sollten alle Winkel-klammert Streifen Teil von Text und dann weiß Räume kollabieren.
In der Theorie sind die <
und >
sollten nicht dort in anderen Fällen. Seiten enthalten <
und >
überall statt sie.
Einstürzen Leerzeichen. Wandeln Sie alle TAB, Newline, etc zu Leerzeichen, dann jede Folge von Räumen zu einem einzigen Raum ersetzen
UPDATE:. Und Sie sollten nach dem Auffinden des <body>
Starttag