Python: Let´s work together

von Kai Surendorf

Newsfeeds anderer Webseiten einlesen? Eigene Seiten automatisch bei Suchmaschinen eintragen? Mit der urllib von Python sind solche Aufgaben schnell und ohne Probleme gelöst.

Die urllib von Python dient dazu, Daten von anderen Servern via HTTP einzulesen. Zuerst ein einfaches Skript, das den Newsfeed von Dr. Web einliest und als SSI aufgerufen werden kann.

#!/usr/bin/python
import cgi
import urllib
newsfeed = urllib.urlopen ('http://www.drweb.de/news/syndicate.php')
ergebnis = newsfeed.read ()
print "Content-Type: text/plain \n\n"
print ergebnis

Nach dem Import der benötigten Module (cgi und urllib) wird die entsprechende Adresse geöffnet, was mit urllib.urlopen () geschieht. In den Klammern in Anführungsstrichen ist die URL anzugeben. Diese wird hier per GET empfangen und steht nun als Datei-Objekt zur Verfügung und wartet darauf, eingelesen zu werden. Da der ganze Text des Newsfeed auf einmal ausgegeben werden soll, wird er komplett in eine Variable eingelesen mit newsfeed.read (). Es wäre auch, analog zu Dateien, möglich, einzelne Zeilen mit newsfeed.readline () einzulesen und weiterzuverarbeiten. In diesem Beispiel soll der Newsfeed aber gleich ausgegeben werden, was mit den letzten beiden Zeilen geschieht. Schon haben Sie immer die letzten Neuigkeiten bei Dr. Web auf Ihrer eigenen Website.

Ein persönlicher Eintragsdienst
Großer Beliebtheit bei Webworkern erfreuen sich Tools, mit denen eigene Seiten automatisch bei Suchmaschinen angemeldet werden. Da die urllib nicht nur per GET Dateien empfangen, sondern auch per POST Daten verschicken kann, ist sie sehr nützlich, wenn Sie sich Ihren persönlichen Eintragsdienst basteln wollen. Ein Prototyp hierfür könnte folgendermaßen aussehen:

#!/usr/bin/python
import cgi
import urllib
puffer = cgi.FieldStorage ()
url = puffer["url"].value
email = puffer["email"].value
parameter = urllib.urlencode({'url': url, 'email': email, 'action': "Submit"})
urllib.urlopen ("http://www.xy.de/cgi-bin/submit.cgi", parameter)
print "Content-Type: text/plain \n\n"
print "Eintrag erfolgt"

Nehmen Sie an, Sie sprechen dieses Skript über ein HTML-Formular an, mit dem Sie sowohl die anzumeldende URL als auch ihre Email übergeben. Nach dem Import der Module werden diese Eingaben in Variablen eingelesen. Anschließend gilt es, die für die Anmeldung bei einer fiktiven Suchmaschine notwendigen Daten zusammenzustellen. Dies erfolgt mit Hilfe eines Dictionaries. Dies bedeutet, dass den Schlüsselwörtern oder Keys die entsprechenden Werte zugeordnet werden. Zum Key url soll der Wert der Variable url gehören, zum Key email der Wert der Variable email und dem Key action wird der Wert Submit zugeordnet. Der Aufruf der Funktion urlencode sorgt dafür, dass aus diesen Paaren ein korrekter String wird, der an das antsprechende Ziel-Programm übergeben werden kann. Nachdem die Parameter korrekt codiert wurden, wird mit urllib.urlopen () die Anfrage an die fiktive Adresse abgeschickt. Da anschließend nach einem Komma noch die zuvor erstellten Parameter ebenfalls übergeben werden, erfolgt diese Anfrage im Gegensatz zum ersten Beispiel hingegen via POST.

Damit Sie aus diesem Prototypen ein eigenes lauffähiges Programm erstellen, müssen Sie folgende Dinge in Erfahrung bringen: Zum einen die URLs der CGI-Skripte, mit denen Sie sich bei den Suchmaschinen anmelden können. Dies können Sie der Adresszeile Ihrer Browsers entnehmen, wenn Sie eine Seite normal anmelden. Diese Adresse setzen Sie an Stelle von http://www.xy.de/cgi-bin/submit.cgi ein Zum anderen die Namen der zu übergebenden Werte. Dies finden Sie heraus, indem Sie sich den HTML-Quellcode des Web-Formulars anschauen, über das Sie die Anmeldung vornehmen. Wenn Sie hier auf ein Formular-Feld stoßen, das die URL enthält und den Namen addurl trägt, so ändern Sie die siebte Zeile des Scriptes in dieser Form ab:

parameter = urllib.urlencode({'addurl': url, 'email': email, 'action': "Submit"})

Einen echten Nutzen wird das Skript bringen, wenn Sie mehrere Suchmaschinen nacheinander damit ansprechen, sich also die entsprechenden Parameter und Adressen für mehrere Suchmaschinen zusammensuchen.

 

 
   Anzeigen


Navigation:    Webdesign - Programmierung - Web Grafiken - Software Guides - Tools - Templates - Schriftarten - Seminare - IT News
Partner:   Template OK - PCopen - SITEopen - PCopen Schweiz - HTMLopen Schweiz - VirtualUniversity.ch - WEB-SET.com - YesMMS - Job und Karriere