ADAC OnlineShop Newsletteranmeldung
Alt 22.09.2011, 12:46:15   #1 (permalink)
Chancentod²
Benutzerbild von WhiZZler

ID: 85586
Lose-Remote

WhiZZler eine Nachricht über ICQ schicken
Reg: 06.05.2006
Beiträge: 652
WhiZZler ist einfach richtig nettWhiZZler ist einfach richtig nettWhiZZler ist einfach richtig nettWhiZZler ist einfach richtig nett
Standard Zusammenhängende Texte aus Webseiten extrahieren

Begrüße!

Für eine Untersuchung möchte ich aus Webseiten zusammenhängende, im Browser sichtbare Texte extrahieren. Die Ergebnisse müssen dabei nicht 100% korrekt sein. Eine oberflächliche Analyse des Quelltextes reicht also völlig. Ob der Text tatsächlich angezeigt wird, oder ob er über ein "display:none;" an irgendeiner Stelle versteckt wird, oder ob er die gleiche Farbe hat wie der Hintergrund soll also vernachlässigt werden.

Mein erster Gedanke war es, das Ganze über reguläre Ausdrücke zu lösen. Das Problem dabei ist die Verschachtelung der HTML Elemente und dass nicht in jedem HTML Element im innerHTML Teil sichtbarer Text enthalten ist, der tatsächlich als Text im Browser ausgegeben wird.
Ein einfaches Beispiel:
PHP-Code:
1:
2:
3:
4:
5:
<div id="foo">
  <
div id="bar">
    <
p>Hier steht Text</p>
  </
div>
</
div
Mein Gedanke war es daher, einen regulären Ausdruck zu formulieren, der nur dann ein Match liefert, wenn im innerHTML eines Elements kein "<" und kein ">" vorhanden ist, sprich keine weiteren HTML Elemente. Dafür habe ich folgenden regulären Ausdruck geschrieben:
Code:
1:
<[^>]*>([^<>]+)</[^>]*>
Das funktioniert soweit auch ganz gut. Allerdings habe ich dabei nicht beachtet, dass der Ausdruck nicht funktioniert, wenn in dem Paragraph beispielsweise ein Link steht. Also zum Beispiel:
PHP-Code:
1:
2:
3:
4:
5:
<div id="foo">
  <
div id="bar">
    <
p>Hier steht TextMit <a href="example.html">Link</a></p>
  </
div>
</
div
Dadurch ist der Ansatz in dieser Form eigentlich unbrauchbar und müsste erweitert werden. Ich frage mich also, wie ich Links im Text oder auch Paragraphen (<p>) und ähnliche Elemente, welche mir noch nicht eingefallen sind, behandeln soll. Möglich wäre es, den HTML Code dieser Elemente zu entfernen, damit nur noch der reine Text über bleibt. Aber welche Elemente sollte man dabei entfernen?

Oder denkt ihr, dass man über klassisches Parsen des DOM Baumes zu besseren Ergebnissen kommt? Auch hier wären wohl wieder bestimmte Regeln für gewisse, noch zu definierende Elemente, nötig.

Hat vielleicht jemand weitere Ideen, wie man sowas umsetzen könnte? Ich weiß, dass meine Fragestellung recht vage ist. Ich konnte für mich selbst auch noch nicht 100% definieren, was denn zusammenhängender Text auf einer Webseite eigentlich ist. Ich erhoffe mir mit diesem Thread also Ideen und/oder einen Schubs in die richtige Richtung.

Falls jemand was zu Arbeiten zu diesem Thema kennt, dann wäre ich über Links oder Namen äußerst dankbar. Mangels passender Suchbegriffe war eine Suche bis jetzt erfolglos.

Danke im Vorraus,
MfG,
WhiZZler
..and you could have it all, my empire of dirt..

WhiZZler ist offline   Mit Zitat antworten
Gesponsorte Links
Alt 22.09.2011, 12:59:48   #2 (permalink)
Multitalent
Benutzerbild von joschilein

ID: 9301
Lose-Remote

joschilein eine Nachricht über ICQ schicken
Reg: 05.05.2006
Beiträge: 1.414
joschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehenjoschilein genießt hohes Ansehen
Standard

Ist sicher nicht ganz leicht. Du musst ja schließlich auch mit der "Dummheit" rechnen, dass kein valides HTML benutzt wird..

Ansonsten: Automatisiert Screenshots machen und OCR drüber laufen lassen


Heute schon gepixelt
joschilein ist offline   Mit Zitat antworten
Alt 22.09.2011, 13:29:44   #3 (permalink)
return void
Benutzerbild von ice-breaker

ID: 93995
Lose-Remote

ice-breaker eine Nachricht über ICQ schicken
Reg: 27.04.2006
Beiträge: 6.026
ice-breaker genießt hohes Ansehenice-breaker genießt hohes Ansehenice-breaker genießt hohes Ansehenice-breaker genießt hohes Ansehenice-breaker genießt hohes Ansehenice-breaker genießt hohes Ansehenice-breaker genießt hohes Ansehenice-breaker genießt hohes Ansehenice-breaker genießt hohes Ansehenice-breaker genießt hohes Ansehenice-breaker genießt hohes Ansehen
Standard

Readability
Boilerpipe

Readability ist ein sehr bekanntes Projekt, da könntest du Glück haben einen mehr oder weniger aktuellen Port auf jede Programmiersprache zu finden.
Selbst schreiben würde ich ganz lassen, das wird vorne und hinten schief gehen.


"Die Wahrheit entgeht dem, der nicht mit beiden Augen sieht." -Orici
ice-breaker ist gerade online   Mit Zitat antworten
Alt 22.09.2011, 13:46:42   #4 (permalink)
Chancentod²
Benutzerbild von WhiZZler

ID: 85586
Lose-Remote

WhiZZler eine Nachricht über ICQ schicken
Reg: 06.05.2006
Beiträge: 652
WhiZZler ist einfach richtig nettWhiZZler ist einfach richtig nettWhiZZler ist einfach richtig nettWhiZZler ist einfach richtig nett
Standard

Zitat:
Zitat von joschilein Beitrag anzeigen
Ist sicher nicht ganz leicht. Du musst ja schließlich auch mit der "Dummheit" rechnen, dass kein valides HTML benutzt wird..

Ansonsten: Automatisiert Screenshots machen und OCR drüber laufen lassen
Die Dummheit würde ich einfach nicht beachten, zumal ich so oder so keine absolute Genauigkeit garantieren kann

Zitat:
Zitat von ice-breaker Beitrag anzeigen
Readability
Boilerpipe

Readability ist ein sehr bekanntes Projekt, da könntest du Glück haben einen mehr oder weniger aktuellen Port auf jede Programmiersprache zu finden.
Selbst schreiben würde ich ganz lassen, das wird vorne und hinten schief gehen.
Ice, du bist ein Gott! Für meine Zwecke sieht vor allem Boilerpipe extrem vielversprechend aus, da das Ganze in einem Java Programm eingebunden werden soll. Und noch dazu gibt es zu Boilerpipe ein Paper, mit dem ich auf jeden Fall weiterkommen werde. Grandios Um einiges besseres als ein eigener Ansatz, der dann wohl eh nicht so richtig funktionieren würde.
..and you could have it all, my empire of dirt..

WhiZZler ist offline Threadstarter   Mit Zitat antworten
Antwort

Gesponsorte Links

Anzeige


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Sound Extrahieren kryb Lose4Action 2 14.12.2008 21:44:56
Kann keine ZIP Ordner mehr öffnen bzw. extrahieren...? Saralx Software/Windows 2 25.08.2007 18:59:18
[B] Texte flaschenkind Lose4Misc 17 15.04.2007 14:27:39
[S]uche kleine Webseiten oder Texte zum Kauf Skhoney Lose4Scripts (erledigt) 1 27.06.2006 10:46:27


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52:34 Uhr.