Beatrix: Automatisierte Auswertung von Internetseiten

Ich habe schon in einem anderen Forum diese Frage gestellt, aber leider noch keine ernsthafte Antwort bekommen, und habe leider keinen Zugriff auf eventuell passende newsgroups.
Ich hoffe, unter Euch sind auch ein paar richtige "Programmierfreaks"?Oder jemand kann ein passendes Forum nennen?
Ein Kollege möchte "ein kleines Progrämmchen, vielleicht mit Javascript?", welches einmal im Monat
beim Start des Rechners bestimmte Internetseiten aufsucht, testet,ob neue
Links dazugekommen sind - dann die Dateinamen der Links rauskriegen,
diese Dateien aufrufen, lokal abspeichern, in diesen Dateien bestimmte
Werte rausfiltern, in eine Datenbank/Tabelle/Datei einspeisen und
schluss-letztendlich graphisch darstellen.Alles in einem Guß.
Welcher Experte kann mir Hinweise geben, womit könnte man so etwas
realisieren (Programmiersprache/Tools/Software),und wie gross wäre der Aufwand etwa (mehrere Wochen???)?.
Ich persönlich würde ja eher den Tip geben, die paar Zahlen "zu Fuss"
anzusurfen und per copy&paste zu übernehmen, als wochenlang über einem
Programm zu grübeln.ICH zumindest bin nicht gerade der große Software-Entwickler...

  1. Hallo Beatrix

    Ein Kollege möchte "ein kleines Progrämmchen, vielleicht mit Javascript?", welches einmal im Monat

    »»  beim Start des Rechners bestimmte Internetseiten aufsucht, testet,ob neue
    »»  Links dazugekommen sind - dann die Dateinamen der Links rauskriegen,
    »»  diese Dateien aufrufen, lokal abspeichern, in diesen Dateien bestimmte
    »»  Werte rausfiltern, in eine Datenbank/Tabelle/Datei einspeisen und
    »»  schluss-letztendlich graphisch darstellen.Alles in einem Guß.

    Ideal fuer so etwas ist ein Perl-Script. Aber keines, dass unter CGI laeuft, sondern ein normales Script, dass einfach auf Betriebssystemebene seinen Dienst tut. Das Script (die pl-Datei) koennte unter Windows z.B. in der Autostartgruppe stehen, so dass es bei jedem Rechnerstart ausgefuehrt wird. Damit es nur einmal im Monat aktiv wird, sollte es das aktuelle Datum auslesen und sich in einer Datei merken, wann es zum letzten Mal den Update durchgefuehrt hat. Wenn kein neuer Update noetig ist, kann das Script sich beenden. Wenn ein neuer noetig ist, kann es die betroffenen Dateien einlesen und bearbeiten. Ganz trivial ist das natuerlich nicht, und ich kann dir jetzt kein fertiges Script hier posten. Aber vom Ansatz her ist das zumindest eine Loesung, die funktionieren koennte.
    Damit sie funktioniert, muss der Perl-Interpreter auf dem PC installiert sein (gibt's von http://www.perl.ocm/ oder fuer Windows auch von http://www.activestate.com/ActivePerl/download.htm).

    viele Gruesse
      Stefan Muenz

  2. Hallo Beatrix,

    Am einfachsten geht das mit Perl und dem LWP-Modul, daß darauf spezialisiert ist, Internetseiten zu 'grabben' und dann zu analysieren (mit Javascript geht es sicher nicht). Die erste Aufgabe, neue Links zu finden, ist noch recht einfach, man extrahiert mit LWP einfach alle Links, vergleicht sie mit den Links, die beim letzten Mal gefunden wurden (und die damals am besten in einer Datenbank gespeichert wurden), und holt sich die Seiten hinter den neuen Links, und speichert sie. Soweit ist das mit LWP wohl kein großer Aufwand, Beispiele findest Du unter:
    http://webreview.com/wr/pub/97/12/12/bookshelf/index.html
    Die Frage ist dann, was Du auswerten willst: wenn die entsprechenden Zahlen irgendwie in der Seite eindeutig indentifiziert sind (z.B.: Inhalt der ersten Tabellenzelle) ist auch das kein Problem, aber meistens ist es wohl so, daß die Inhalte in jeder Seite irgendwo stehen, und sich das bei einem Redesign auch ändern kann, deshalb wäre in einem solchen Fall wohl wirklich besser, es 'zu Fuss' zu machen.

    Grüße
    Stephan

    1. Vielen Dank für Eure Hiweise, besonders das mit dem LWP klingt interessant, wenn es auch vielleicht nun doch nicht für diese konkrete Frage benutzt wird, so vielleicht später mal...

    2. Die Frage ist dann, was Du auswerten willst: wenn die entsprechenden Zahlen irgendwie in der Seite eindeutig indentifiziert sind (z.B.: Inhalt der ersten Tabellenzelle) ist auch das kein Problem, aber meistens ist es wohl so, daß die Inhalte in jeder Seite irgendwo stehen, und sich das bei einem Redesign auch ändern kann, deshalb wäre in einem solchen Fall wohl wirklich besser, es 'zu Fuss' zu machen.

      Ich vermute, eine brauchbare Lösung könnte es auch sein, den einen Teil automatisch und den anderen manuell durchzuführen - will sagen: Ein automatischer Checker, der zeigt, auf welchen Seiten sich überhaupt *irgendwas* an den links geändert hat, würde schon einen großen Teil der stupiden Arbeit erledigen. Der könnte beispielsweise ein HTML-Dokument mit links auf die geänderten Seiten erzeugen - und die könnte man dann ggf. auch manuell durchsehen.

      Ein Teil des Tricks wird auf jeden Fall darin bestehen, sich die links innerhalb einer Seite irgendwie lokal zu speichern, damit man die Unterschiede feststellen kann.
      Statt einer Datenbank könnte auch eine Datei pro überwachter URL ausreichen, wobei diese Datei ganz einfach einen link pro Zeile enthält.
      Dasselbe erzeugt der "grabber" dann dynamisch von der URL, sortiert beide Listen und gleicht sie gegeneinander ab. Dabei kann er im Falle eines Unterschieds sogar gleich die neue link-Menge abspeichern, damit man diese Dateien nicht manuell pflegen muß.

      In dieser Ausbaustufe und bei entsprechender Einarbeitung in LWP (um die Seiten anzufordern) könnte das an einem Wochenende zu schaffen sein.