Open Source im professionellen Einsatz
Linux-Magazin 01/2004

Mit einem Perl-Agenten und Jabber über Ebay-Auktionen informieren

E-Baywatcher

Wer in letzter Sekunde in Versteigerungen eingreifen will, lässt sich rechtzeitig von einem Perl-Agenten daran erinnern. Der Agent sucht auf Ebay nach Stichworten und informiert seinen Mandanten sofort per Instant Message, wenn sich eine passende Auktion dem Ende nähert.

503

Das Online-Auktionshaus Ebay bietet nach eigenen Angaben allein in Deutschland Zugriff auf mehr als eine Million Artikel. Um so schwerer wird es bei dieser Angebotsdichte, eine bestimmte Auktion zu finden. Das hier vorgestellte Skript »ebaywatch« (siehe Listing 1) sendet in regelmäßigen Abständen definierbare Suchanfragen an den Ebay-Server und wertet die gefundenen Auktionen nach ihrem Abschlussdatum aus.

Nähert sich eine Auktion ihrem Ende, verpackt das Skript eine kurze Beschreibung mit der URL zur Auktion in eine Instant-Messenger-Nachricht (IM) und schickt diese über den Jabber-Server an einen Gaim-Client[5]. Gaim lässt die Nachricht daraufhin dem interessierten Benutzer auf den Bildschirm flattern (siehe Abbildung 1). Ein Mausklick auf die URL genügt dann, um einzuschreiten und mitzusteigern.

Die Datei ».ebaywatchrc« im Homeverzeichnis des Anwenders legt fest, nach welchen Stichworten der Agent auf der Ebay-Website suchen soll. Jede nicht auskommentierte Zeile steht für eine Suchanfrage. Die Zeilen

# ~/.ebaywatchrc
dwl 650
nikon


definieren zum Beispiel Anfragen nach der D-Link-Netzwerkkarte DWL-650 und nach allen möglichen Produkten der Firma Nikon.

Das Skript durchforstet die Titelfelder der einzelnen Auktionen und unterstützt mit den in[2] beschriebenen Kürzeln sogar erweiterte Suchfunktionen. So findet zum Beispiel die Zeile »foto -nikon« alle Fotoartikel, aber keine Produkte der Firma Nikon. Der Suchstring »beatles (dvd,cd)« fördert alle Angebote von Beatles-CDs und -DVDs ans Licht.

CPAN-Module für Jabber und Ebay

Wie so oft hat sich bereits jemand nach dem Motto "I wrote code, so you don\'t have to" (siehe[6]) daran gemacht, die Suche in den Ebay-Beständen als Perl-Modul zu realisieren. In den CPAN- Archiven findet sich Martin Thurns »WWW::Search::Ebay« mit dem Modul »WWW::Search::Ebay::ByEndDate«. Es generiert die vom Benutzer vorgegebenen Suchabfragen und sortiert die eintrudelnden Ergebnisse nach dem Enddatum - perfekt!

Das ebenfalls beim CPAN erhältliche »Net::Jabber«-Modul von Ryan Eatmon enthält ein vollständiges API, um funktionsfähige Jabber-Clients zu schreiben. Ebaywatch nutzt lediglich einen kleinen Teil davon: Es muss sich im Bedarfsfall nur schnell mit dem Jabber-Server »jabber.org« auf Port 5222 verbinden, ihm seine Anwesenheit mitteilen, eine Nachricht an den Mandanten abschicken und sich dann gleich wieder verabschieden. Wer mehr Funktionen nutzen will, findet sie in dem Buch des mächtigen Jabberers DJ Adams (siehe[3]).

Zwei in einem</>

Um den Ablauf zu vereinfachen, benutzen sowohl das Überwachungsskript als auch der Empfänger den gleichen Jabber-Account. Das ist möglich, da der Jabber-Server es erlaubt, sich mit einem einzigen Benutzernamen von mehreren IM-Clients aus gleichzeitig einzuloggen. Damit der Server die verschiedenen eingeloggten Benutzer voneinander unterscheiden kann, qualifizieren diese sich zusätzlich zu ihrem Benutzernamen noch mit einer so genannten Resource. Sie besteht aus einem String, der jeden Client in Verbindung mit dem Benutzernamen eindeutig identifiziert. Das Überwachungsskript benutzt den Resource-Namen »ebaywatcher«, während Gaim seinen eigenen Resource-String definiert. Neuere Gaim-Versionen erlauben es auch, die Resource über ein Dialogfenster einzustellen.

Abbildung 1: Ein Perl-Agent meldet pünktlich drei Ebay-Auktionen, die in wenigen Minuten beendet sein werden. Der Anwender hat den Agenten nach bestimmten Suchbegriffen auf dem Ebay-Server suchen lassen.

Linux-Magazin kaufen

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

Deutschland

Ähnliche Artikel

  • E-Commerce-APIs

    Gutgehende Onlineshops sind selten und das Ergebnis langer Arbeit. Wer gerade erst beginnt Waren zu verticken, tut gut daran, bei einem großen Shoppingportal unterzuschlüpfen. Über APIs lassen sich eigene Warenwirtschafts- oder Buchhaltungsprogramme anbinden.

  • 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

  • Perl-Snapshot

    Ein Screenscraper und eine Applikation für das offizielle Ebay-API lösen Alarm bei neu eingegangenem Kunden-Feedback aus und spüren Fehler in der monatlichen Ebay-Abrechnung auf.

  • Perl-Snapshot 2016/06

    Ein Screenscraper und eine Applikation für das offizielle Ebay-API lösen Alarm bei neu eingegangenem Kunden-Feedback aus und spüren Fehler in der monatlichen Ebay-Abrechnung auf. Im Video zeigt Michael Schilli wie es funktioniert.

  • Gesprächsprotokolle

    Wer nicht nur E-Mails auf dem IMAP-Server sichern, ordnen und durchsuchen möchte, sondern auch Konversationen via Instant Messaging, der tut dies am besten mit dem hier vorgestellten Perl-Skript.

comments powered by Disqus

Ausgabe 06/2017

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