Internet-Software, Browser, FTP, SSH 4.708 Themen, 38.981 Beiträge

Internetseiten teilautomatisch auswerten?

mainframer / 10 Antworten / Baumansicht Nickles

Hallo,
ich suche als Internet-Laie einen Tipp für folgende Problemstellung:

1) Der öffentlich-rechtliche Betreiber einer großen Internetplattform bietet auch eine (recht primitive) Suchmaske (max. 5 Parameter, die ich täglich in 3 gleich bleibenden Versionern eingesetze) zur Volltext-Recherche in seinen Datenbeständen.

2) Es resultieren daraus täglich dreimal 0 - n Treffer (max. 200), die auf 0 - n Bildschirmseiten (max. 20) aufgelistet werden.

3) Diese Treffer gilt es nach bestimmten, stets gleich bleibenden Kriterien auszuwerten. D.h. mit Trefferadresse/Link lesen und nachgucken, ob darin diese Kriterien stehen. Endresultat dieser täglich 1-2 Stunden erfordernden "manuellen" Arbeit ist eine Tabelle.

Fragen:
a) Gibt es ein Standardprogramm, dem man solche Auswertungen zumindest teilweise übertragen kann?
b) Welche Sprache (JavaScript etc) wäre geeignet für eine Individuallösung dieser Aufgabe, deren Realisierung ich ggf. einem Programmierer übertragen würde.

Ein direkter Zugriff auf die Datenbestände mit intelligenter Programmierung/Auswertung wäre nicht möglich. Es muß die Internetplattform genutzt werden.


bei Antwort benachrichtigen
xafford mainframer „Internetseiten teilautomatisch auswerten?“
Optionen

Hmmm... Dir ist aber schon klar, dass das was Du da machst rechtlich durchaus bedenklich ist?

Zum eigentlichen Thema:

a) Afaik nein, da die Struktur jeder Seite sehr individuell ist, ebenso deine Kriterien. Da käme jede Definition von Suchkriterien und Eingabeparametern fast einer vollständigen Programmierung gleich.

b) Es gibt jede Menge Sprachen die dafür geeignet wären, JavaScript gehört jedoch eher nicht dazu. Was die geeignetste wäre hängt von einer genaueren Definition deiner Anforderungen ab, prinzipiell dürfte jedoch bei einem gewünschten Clientprogramm Java, C++, C# oder VB.NET infrage kommen, wenn es servergestützt laufen darf käme auch Java, PHP, Perl oder Python infrage. Wobei es letztlich wohl auf Java, C# oder PHP rauslaufen düfte.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
mawe2 xafford „Hmmm... Dir ist aber schon klar, dass das was Du da machst rechtlich durchaus...“
Optionen
Dir ist aber schon klar, dass das was Du da machst rechtlich durchaus bedenklich ist?

Wie meinst Du das?

Warum ist es rechtlich bedenklich, wenn man Inhalte, die der Anbieter öffentlich zugänglich macht, abfragt und zusammenfasst?

Bisher macht mainframer das manuell, nun will er es automatisieren. Ist auch das manuelle Abfragen solcher Inhalte rechtlich bedenklich?

Gruß, mawe2
bei Antwort benachrichtigen
mainframer mawe2 „ Wie meinst Du das? Warum ist es rechtlich bedenklich, wenn man Inhalte, die der...“
Optionen

Rechtliche Bedenken sind unbegründet, zumal die manuellen Auswertungen auf Grundlage der öffentlich zugänglichen Daten ja auch nicht beanstandet werden!

@xafford
Was stört dich bei "vollständiger Programmierung", falls es tatsächlich kein Auswertesystem auf PC/Internetbasis geben sollte, wie es seit Jahrzehnten (!) im Großrechner-Umfeld bekannt ist?
Null Probleme gäbe es z.B. mit undokumentierten Datenstrukturen in einer DB2-Datenbank.

Screen Scraping ist im vorliegenden Problemfall leider auch nicht möglich, da etliche für die Statistik entscheidenende Daten gar nicht angezeigt werden. Übrigens mit eine Eigenschaft dieser verkorksten, mit vielfachen Millionenaufwand (!) von "umgeschulten Metzgergesellen" und gefeuerten Projektleitern aufgebauten Informationsquelle aus der BA...

Hat hier wer Erfahrung mit dem mir zur Verfügung stehenden Natural/Ajax der SAG?

bei Antwort benachrichtigen
xafford mainframer „Rechtliche Bedenken sind unbegründet, zumal die manuellen Auswertungen auf...“
Optionen
@xafford
Was stört dich bei "vollständiger Programmierung", falls es tatsächlich kein Auswertesystem auf PC/Internetbasis geben sollte, wie es seit Jahrzehnten (!) im Großrechner-Umfeld bekannt ist?


Mich stört daran nichts, es war nur die Antwort auf deine Frage ob es ein Standardprogramm gibt. Ich ging davon aus, dass ein Standardprogramm wenig Sinn macht bei so komplexen Anforderungen da seine Konfiguration aus diesem Grund einer Neuprogrammierung eines eigenen Programmes für diesen Zweck gleich käme.

Null Probleme gäbe es z.B. mit undokumentierten Datenstrukturen in einer DB2-Datenbank.

Nun, bei Datenbanken hast Du SQL als feste Abfragesprache und auch die Struktur einer Datenbank ist immer gleich Organisiert (Datenbank, Tabelle, Datensätze, Felder, Datentypen). Bei der Ausgabe einer Internetseite kann ein gesuchtes Ergebnis bei dynamischen Inhalten immer geringfügig unterschiedlich sein.

Screen Scraping ist im vorliegenden Problemfall leider auch nicht möglich, da etliche für die Statistik entscheidenende Daten gar nicht angezeigt werden.

Hier habe ich gerade ein Verständnisproblem: Wenn relevante Daten nicht angezeigt werden, woher bekommst Du diese aktuell?
Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
mainframer xafford „ Mich stört daran nichts, es war nur die Antwort auf deine Frage ob es ein...“
Optionen

@xafford
Bei DB2 auf Mainframe habe ich mehr als nur SQL und kann mit entsprechenden Tools Datenstrukturen auch ohne Dokumentation analysieren.

Es werden nur auszugsweise (!) Daten angezeigt und nach einem 3-stufigen Primitiv-Verfahren manuell ausgewertet:
1. Suchbegriffe eingeben
2. Trefferliste abarbeiten und bei gewissen Firmennamen weiter ausschlachten
2. In diese firmenspezifischen Daten einsteigen und dort nach gewissen weiteren Informationen suchen.

In einem ScreenScraping, wie ich es bisher verstanden habe, können nur die tatsächlich angezeigten Daten ausgewertet werden wie z.B. mit dem ebenfalls vorhanden screen-scraper von elkiwi. Ich lasse mich aber gerne berichtigen.

Natürlich hast du recht, wenn du mit mit möglichen Bedenken auf gewisse Richter abzielen solltest. Schließlich erleben wir ja tagtäglich Entscheidungen von Spinnern wie z.B. das Verbot, Hartz-IV-Bezieher am Lotto teilnehmen zu lassen. Schließlich war ich auch einmal vier Jahre lang Schöffe (=Galionsfigur, die den Mund nicht aufmachen darf) und habe dabei so manchen Vogel in Richterrobe kennen gelernt. Die Auswertungen für eine private Interessengemeinschaft, in der ich selber Mitglied bin, werden jedoch nicht kommerziell genutzt. Sie wurden in der Vergangenheit auch fallweise den Behörden zur Verfügung gestellt und verursachten schlimmstenfalls Verärgerung, dass damit auch eine behördliche (!) Unterstützung für kriminelle Organisationen durch Untätigkeit offen gelegt werden konnte.

bei Antwort benachrichtigen
xafford mainframer „@xafford Bei DB2 auf Mainframe habe ich mehr als nur SQL und kann mit...“
Optionen

Ich wollte eigentlich nicht in eine Grundsatzdiskussion einsteigen, sondern nur verdeutlichen, dass eine automatisierte Auswertung wie sie Dir anscheinend vorschwebt wohl eher nicht mit einem fertigen Produkt zu leisten ist da sie anscheinend von den Bedingungen her sehr komplex ist (was durch deine jetzigen Auswertungen noch komplexer wurde), da sie offensichtlich recht viele bedingte Verzweigungen hat.

Letztendlich wirst Du ein Programm bauchen dass folgendes tut:

- Eine POST oder GET-Abfrage an den Server stellen um an die Ergebnisseite zu gelangen
- Die Seite in ein DOM parsen
- Prüfen ob es mehr als eine Ergebnisseite gibt und in diesem Fall die weiteren Ergebnisseiten holen und ebenfalls parsen
- Die geparsten Ergebnisse nach den gewünschten Werten durchsuchen
- Anhand der gefunden Ergebnisse ggf. weitere Seiten abrufen und parsen
- Die Ergebnisse für die Ausgabe aufbereiten

Hierbei gibt es dann verschiedene Probleme:

- Ist die Seitenstruktur immer gleich? Haben die Ergebnisse immer die gleiche Darstellung?
- Ändern sich die Suchbedingungen? Wenn ja, wie löst man das so flexibel dass Anpassungen leicht umzusetzen sind?
- Wie definiert man welche Seiten bedingt zusätzlich geholt werden müssen?
- Wie definiere ich, was aus den zusätzlich geholten Seiten an Information geholt werden muss ohne dass für jede Seite ein eigenes Programm notwendig ist?

Das führt zu folgendem:

- Das abholen der Seiten ist trivial, hier kann man mit libCURL arbeiten die von vielen vielen verschiedenen Programmiersprachen aus eingebunden werden kann.
- Das Parsen an sich ist auch noch relativ trivial mittels eines DOM-Parsers und man erhält einen Dokumentenbaum auf dem man anschließend arbeiten kann.
- Dann wird es komplexer und man muss sich entscheiden ob man die Logik für die Suche im Ergebnis "fest verdrahtet" oder flexibel gestaltet. Im ersten Fall muss man imme rbei Änderungen an der Art der Ausgabe der Seite das Tool umbauen, im letzteren Fall muss man im Prinzip eine eigene Abfragesprache bauen um die Suchkriterien zu definieren.
- Selbiges gilt für die Unterabfragen.

Prinzipiell kann all dies bestimmt auch von einer Software für das Screen Scraping geleistet werden. Ich gehe jedoch einmal davon aus, dass eben die Definition der Bedingungen, so wie DU sie bis jetzt geschildert hast eben fast einer "vollständigen Programmierung" gleichkommen dürfte da das was Dir wohl vorschwebt recht komplex klingt.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
Borlander xafford „Ich wollte eigentlich nicht in eine Grundsatzdiskussion einsteigen, sondern nur...“
Optionen
- Das Parsen an sich ist auch noch relativ trivial mittels eines DOM-Parsers und man erhält einen Dokumentenbaum auf dem man anschließend arbeiten kann.
Da habe ich in der Vergangenheit leider schon andere Erfahrungen machen müssen. Die frei verfügbaren DOM-Parser die ich getestet hatte sind da häufig ausgestiegen. Viele HTML-Dokumente sind leider sehr unsauber :-(

Gruß
bor
bei Antwort benachrichtigen
xafford Borlander „ Da habe ich in der Vergangenheit leider schon andere Erfahrungen machen...“
Optionen

Da empfiehlt sich dann der vorgeschaltete Einsatz von libtidy um das Dokument richtig zu formatieren.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
mainframer xafford „Ich wollte eigentlich nicht in eine Grundsatzdiskussion einsteigen, sondern nur...“
Optionen

Danke!

bei Antwort benachrichtigen
xafford mawe2 „ Wie meinst Du das? Warum ist es rechtlich bedenklich, wenn man Inhalte, die der...“
Optionen

Rechtlich bedenklich ist es, da auch Datenbanken und Datenzusammenstellungen dem Urheberrecht unterliegen und auch das Wettbewerbsrecht hier reinspielt wenn mainframer die automatisierte Auswertung nicht nur rein privat macht.

Ich habe übrigens nur geschrieben "bedenklich" nicht strafbar oder illegal, es gab nur in der Vergangenheit Fälle in denen das automatisierte Auswerten öffentlich zugänglicher Datenbanken von Gerichten als Verstoß gesehen wurde.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen