Dieser Artikel wurde archiviert, da er - oder Teile daraus - nur noch unter einer älteren Ubuntu-Version nutzbar ist. Diese Anleitung wird vom Wiki-Team weder auf Richtigkeit überprüft noch anderweitig gepflegt. Zusätzlich wurde der Artikel für weitere Änderungen gesperrt.
Oft muss man Daten über ein Netzwerk austauschen. Das HyperTextTransferProtocol ist ein häufig verwendetes Protokoll dafür und stellt die Grundlage der üblichen Webangebote dar.
Wenn das Programm wget installiert ist, kann man Daten mit wget herunterladen. Eine Anleitung gibt es im Artikel Download-Manager.
Unter Python gibt es dafür das Modul urllib
.
1 2 3 4 5 6 7 8 9 10 | from urllib import urlopen as connect, urlencode # Die Parameter parameter = urlencode({"foo": "bar", "spam": "eggs"}) # Parameter in der URL übermitteln: print connect("http://server.tld/script?%s" % parameter) # Parameter als POST übermitteln: print connect("http://server.tld/script", parameter) |
In Ruby gibt es mehrere Möglichkeiten, das Ziel zu erreichen.
Zum Einen kann das Net::HTTP-Modul benutzt werden - für normale GET-Requests
1 2 3 4 5 6 7 8 9 | require 'net/http' parameter = "foo=bar&spam=eggs" Net::HTTP.start('server.tld') { |request_objekt| antwort = request_objekt.get("/?#{parameter}") puts antwort.code #sollte idealerweise 200 (OK) sein puts antwort.body #die eigentliche HTML-Seite } |
und auch zum POSTen von Daten
1 2 3 4 5 6 7 8 9 10 | require 'net/http' param1 = "bar" param2 = "eggs" Net::HTTP.start('server.tld') { |request_objekt| antwort = request_objekt.post('/post.php', "foo=#{param1}&spam=#{param2}") puts antwort.code #hoffentlich wieder 200 puts antwort.body #was auch immer ein POST-Request zurückliefert (meist HTML) } |
Wenn man nur lesen will, muss man einfach das Modul open-uri
einbinden, das den normalen open
-Aufruf um die Fähigkeit erweitert, URLs zu öffnen.
1 2 3 4 5 | require 'open-uri' open('http://server.tld/seite.html') { |uri| puts uri.readlines } |
Eine Webseite abfragen kann man leicht mit dem Modul LWP::Simple, wie folgendes Beispiel zeigt:
1 2 3 4 | #!/usr/bin/perl -w use LWP::Simple; print get("http://ubuntuusers.de/") or die "Webabfrage schlug fehl: $!"; |
Etwas ausführlicher mit encoding der URL-Parameter:
1 2 3 4 5 6 7 8 9 10 | #!/usr/bin/perl -w use strict; use LWP::Simple; use URI::Escape; my $encoded = uri_escape("Hallo Welt\n"); #print $encoded, "\n"; # zu debugging-Zwecken getprint("http://ubuntuusers.de/?$encoded") or die "Webabfrage schlug fehl: $!"; |
Das Modul WWW::Mechanize erlaubt die komplette Automatisierung von Webabfragen.
Diese Revision wurde am 16. Januar 2012 09:13 von Heinrich_Schwietering erstellt.