2008-09-17 5 views
1

Ich mache ein persönliches, nur zum Spaß, Projekt, das Screen Scraping verwendet, um mir eine Taskleiste Benachrichtigung, falls eine andere Zeile in einer HTML-Tabelle hinzugefügt, geändert oder gelöscht wird.Gibt es eine andere Möglichkeit, Screen Scraping als normale Ausdrücke auszuführen?

Nachdem ich dies getan habe, dachte ich: Nun, lass uns mit dem regulären Ausdruck gehen und das ist es, aber eine neugierige Person zu sein, ließ mich denken, dass da draußen noch etwas anderes sein könnte, aber einfach sein könnte benutzen.

Ich weiß über DOM und X-Path und alle xml'ish Ansätze. Ich suche nach etwas über den Tellerrand hinaus, etwas, das sogar in einer Reihe von Regeln definiert werden kann, so dass Sie ein Plugin-System erstellen können, um verschiedene Sites zu aggregieren.

Antwort

-1

Wenn Sie die Quelle in valides XHTML/XML mit so etwas wie SgmlReader oder HtmlTidy umwandeln kann, dann können Sie XSLT verwenden. Erstellen Sie einfach eine XSL-Vorlage für jede Site, die Sie scrappen möchten.

+0

Jetzt gibt es zwei Probleme - Parsing HTML und Verwaltung von XSLT, und die "Lösung" ist schwieriger als das ursprüngliche Problem. –

0

Hier ist eine Idee: Angenommen, Ihr Hauptanwendungsfall ist eine Benachrichtigung, sobald sich eine HTML-Datei ändert. Warum nicht ein Standard-Diff-Tool verwenden und dann die geänderten Zeilen durchlaufen und Ihre Regeln anwenden?

Auch wenn dies eine Situation ist, in der Sie Zugriff auf den Server und die Dateien haben, die Sie gerade sehen, können Sie alles mit CVS (oder ähnlichem) in die Quellcodeverwaltung stellen und nur auf die Commits achten. Wenn Sie diesen Ansatz für zufällige Sites im Web verwenden möchten, schreiben Sie einfach ein Skript, das regelmäßig den HTML-Code für die entsprechenden URLs herunterlädt und dann an die Quellcodeverwaltung festschreibt und die Diffs überwacht.

Nicht sehr praktisch, aber außerhalb der Box.

Verwandte Themen