Open Source im professionellen Einsatz
Linux-Magazin 06/2005

Yahoo-Dienste für eigene Skripte verwenden

Ozapft is

Neben Google, Amazon und Ebay bietet neuerdings auch Yahoo eine Programmierschnittstelle zu einigen seiner Dienste an. Drei einfache Perl-Skripte stöbern heute damit Tippfehler, Internetbildchen und verschollen geglaubte Klassenkameraden auf.

506

Immer mehr Internetanbieter stellen ihre Dienste nicht nur über eine Browserschnittstelle ins Netz, sondern erlauben es Entwicklern, sie in ihre eigenen Applikationen mittels Web-APIs einzuklinken. Yahoo bietet seit neuestem ein REST-Interface (Representational State Transfer, in der Praxis: URLs hin, XML zurück) zu seiner Such-Engine an. Dazu gibt es natürlich auch das passende Perl-Modul Yahoo::Search, erhältlich im CPAN und entwickelt von einem Kollegen bei Yahoo, dem großen Regex-Spezialisten Jeffrey Friedl.

Es vereinfacht die Suche nach Dokumenten, Bildern, Videos und einiges mehr. HTTP-Zugriffe und XML-Extraktion sind sauber hinter einfachen Methodenaufrufen versteckt. Wer eine Applikation entwickeln möchte, holt sich einfach eine eigene Application-ID ab. Sie berechtigt zu 5000 Aufrufen der in diesem Artikel vorgestellten Dienste pro Tag. Die Registrierung auf[2] erfordert eine eigene Yahoo-ID, die es ebenfalls kostenlos gegen die Angabe einer gültigen E-Mail-Adresse gibt. Es empfiehlt sich allerdings auch ein Blick in das Privacy Statement, das unter anderem beschreibt, wofür Yahoo die Mailadresse verwenden möchte.

Meinten Sie ...?

Wer nicht genau weiß, wie ein bestimmtes Wort geschrieben wird, greift zum Duden oder einem Englisch-Wörterbuch. Allerdings finden sich darin manche aktuellen oder gerade modischen Wörter, Begriffe der Popkultur oder Eigennamen nicht. In solchen Fällen hilft das Internet weiter. Die meisten Such-Engines bieten "Did you mean?"-Funktionen an. Zu Suchwörtern, die ihnen unverständlich erscheinen, schlagen sie korrigierte Schreibweisen vor.

Das Programm »typo« beispielsweise (siehe Listing 1 ) ruft über die Methode »Term()« den Korrektur-Webservice bei Yahoo auf:

$ typo foo foughters
Corrected: foo fighters


Wer also ein Lied im Radio hört, aber den Bandnamen nicht richtig versteht, gibt einfach das Gehörte in die Suchmaschine ein. Falls die Gruppe recht bekannt ist, kann es die Korrektur möglicherweise richten.

Listing 1 zeigt die Implementierung: Die »use«-Anweisung in Zeile 9 holt das zuvor mit einer CPAN-Shell installierte Modul Yahoo::Search rein und übergibt ihm die vorher von[2] abgeholte Application-ID. An dieser Stelle sind dieses Skript und die beiden folgenden vor dem Einsatz entsprechend anzupassen.

Die Methode »Terms()« nimmt mit dem Parameter »Spell« ein Wort oder eine Wortfolge entgegen, schickt sie an den Service auf der Yahoo-Seite, untersucht das zurückgeschickte XML und fieselt eine etwaige Antwort heraus. Zeile 11 legt sie in der Variablen »$suggestion« ab. Das anschließende If-else-Konstrukt gibt entweder die Antwort aus oder, falls der Such-Engine nichts zum untersuchten Begriff eingefallen ist, »No corrections«. Leider hinkt die Internationalisierung des Service noch etwas hinterher und zu Wörtern mit Umlauten fallen ihm noch keine Korrekturen ein.

Auf der Suche nach der verlorenen Zeit

Die Spiders der Search-Engines grasen ständig das bekannte Internet nach neu auftauchenden Informationen ab. Entsprechend ändern sich die Suchresultate zu bestimmten Begriffen. Wer einmal am Tag eine Abfrage mit den Namen seiner alten Schulkameraden abschickt, bekommt mit, falls diese neue Homepages aufziehen oder zu Rang und Namen kommen. Natürlich hat niemand die Zeit, das jeden Tag manuell durchzuführen. Auch könnte man sich schwer die Resultate merken.

Abbildung 1: Alte Klassenkameraden sind im Web aufgetaucht. Das Skript verschickt eine Zusammenfassung der Treffer via E-Mail.

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Heilig nach Punkten

    Der Instant-Messenger-Client Gaim spricht nicht nur viele Protokolle, sondern lässt sich auch noch mit Perl-Plugins erweitern. Eines versetzt sogar Atheisten in die Lage, katholisch aufzusteigen.

  • Hört die Signale

    Mit etwas Perl ordnet Pidgin - der Tausendsassa unter den Instant-Messaging-Clients - verschiedenen Kommunikationspartnern unterschiedliche Klänge zu und spielt sie zu eintreffenden Nachrichten ab.

  • Kontaktmann

    Wer von außen durch die eigene Firewall ins LAN gelangen will, braucht entweder ein geheimes Loch oder einen kooperativen Agenten auf der Innenseite. Ein Jabber-Client nimmt von innen aktiv Kontakt zum öffentlichen Jabber-Server auf und wartet auf Instruktionen seiner Internet-Buddies in Form von Instant Messages. Michael Schilli

  • Kern-Technik

    Kernelprogrammierer können auf die effiziente dynamische Speicherverwaltung von Linux bauen. Doch auch für Applikationsentwickler sind Kenntnisse des Buddy-Systems und des Slab-Allokators interessant, denn es stecken trickreiche Algorithmen dahinter.

  • Simple Web Services

    Web Services mit XML-RPC und SOAP sind zwar praktisch für den maschinellen Austausch von WWW-Daten, aber schwierig zu programmieren. REST macht Webdienste so einfach, wie das Web einmal war.

comments powered by Disqus

Ausgabe 09/2017

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.