Seite 1 von 1

os.system(wget) in Variable umleiten

Verfasst: Dienstag 4. August 2009, 21:08
von Felix
Hallo,
ich versuche eine Webseite zu Lesen und die Ausgabe in eine Variable umzuleiten.
den Code den ich verwende sieht so aus:

Code: Alles auswählen

url = 'wget -q --load-cookies=%s/cookies/%s --user-agent="Mozilla/5.0" "%s"' % (pfad, cookie, urldata)
res = os.system(url)
Nun wird die Ausgabe aber nicht in die variable res geschriben sondern in ein File.
Wie kann ich dies machen, das die Ausgabe in die Variable geschrieben wird?

Gruss Felix

Verfasst: Dienstag 4. August 2009, 21:27
von Hyperion
Wieso verwendest Du nicht urllib / urllib2? Gibts nen trifftigen grund für wget?

Verwende aus dem subprocess-Modul popen! Damit kannst Du einfach die Rückgabedaten einlesen.

Verfasst: Dienstag 4. August 2009, 21:36
von Felix
urllib kann keine cookies verarbeiten. Weiss aber nicht ob urllib2 cookies handeln kann. Beim subprocess Module popen glaube ich mal was gelesen zu haben, das dies beim Python3.0 nicht mehr vorhanden ist.
Habe auch schon das Module mechanize angeschaut, möchte aber eine Lösung bei welcher keine Module nachinstaliert werden müssen.

Wenn urllib2 cookies handeln kann würde ich dies nehmen, habe aber auch noch nichts dazu gefunden.

Gruss Felix

Verfasst: Dienstag 4. August 2009, 21:45
von cofi
Library Reference hat geschrieben:The urllib.request module defines functions and classes which help in opening URLs (mostly HTTP) in a complex world — basic and digest authentication, redirections, cookies and more.
http://docs.python.org/3.1/library/urllib.request.html

Python3.0 ist tot, nimm 3.1.

Und benutze die Library Reference und nicht "irgendwo gelesen", die hat dir zu ``subprocess`` auch mehr zu sagen.

Verfasst: Dienstag 4. August 2009, 21:57
von Felix
cofi hat geschrieben: Python3.0 ist tot, nimm 3.1.
Dabei ist zu erwähnen, dass das Script unter Python 2.5 und 2.6 laufen sollte, da ich es für die Dreambox schreibe und auch verteilen möchte. Darum kann ich nicht sagen wann die Version geupdatet wird.
Werde mir aber mal dein virgeschlagenes Modul genauer ansehen für die Zukunft.

Gruss Felix

Verfasst: Dienstag 4. August 2009, 22:15
von cofi
Der Satz ist auch bei 2.6 enthalten - dort ist es aber urllib2:
[quote="Library Reference (2.6)]The urllib2 module defines functions and classes which help in opening URLs (mostly HTTP) in a complex world — basic and digest authentication, redirections, cookies and more.[/quote]

Du solltest allerdings wirklich die richtigen Versionen angeben, wenn du schon mit Python 3 um dich wirfst ;)

Verfasst: Dienstag 4. August 2009, 22:30
von EyDu
cofi hat geschrieben:Du solltest allerdings wirklich die richtigen Versionen angeben, wenn du schon mit Python 3 um dich wirfst ;)
Ach, egal ob 2.5, 2.6, 3.0, 3.1, e, oder Pi, gerundet ist es alles 3 ^^

Verfasst: Dienstag 4. August 2009, 22:43
von cofi
EyDu hat geschrieben:
cofi hat geschrieben:Du solltest allerdings wirklich die richtigen Versionen angeben, wenn du schon mit Python 3 um dich wirfst ;)
Ach, egal ob 2.5, 2.6, 3.0, 3.1, e, oder Pi, gerundet ist es alles 3 ^^
D.h. Python-Code ab 2.5 ist kompatibel zu Python3 ? :twisted:

Verfasst: Mittwoch 5. August 2009, 05:48
von snafu
cofi hat geschrieben:
EyDu hat geschrieben:Ach, egal ob 2.5, 2.6, 3.0, 3.1, e, oder Pi, gerundet ist es alles 3 ^^
D.h. Python-Code ab 2.5 ist kompatibel zu Python3 ? :twisted:
*Halb* kompatibel. :)

Verfasst: Mittwoch 5. August 2009, 17:25
von Pascal
cofi hat geschrieben:
EyDu hat geschrieben:
cofi hat geschrieben:Du solltest allerdings wirklich die richtigen Versionen angeben, wenn du schon mit Python 3 um dich wirfst ;)
Ach, egal ob 2.5, 2.6, 3.0, 3.1, e, oder Pi, gerundet ist es alles 3 ^^
D.h. Python-Code ab 2.5 ist kompatibel zu Python3 ? :twisted:
Ich seh darin eher eine Anspielung auf die Konstanten der Mathematik :lol:

Egal wie es gemeint war, ich habe mich köstlich über den Beitrag von EyDu amüsiert.

Verfasst: Mittwoch 5. August 2009, 18:38
von EyDu
Pascal hat geschrieben:
cofi hat geschrieben:
EyDu hat geschrieben:
cofi hat geschrieben:Du solltest allerdings wirklich die richtigen Versionen angeben, wenn du schon mit Python 3 um dich wirfst ;)
Ach, egal ob 2.5, 2.6, 3.0, 3.1, e, oder Pi, gerundet ist es alles 3 ^^
D.h. Python-Code ab 2.5 ist kompatibel zu Python3 ? :twisted:
Ich seh darin eher eine Anspielung auf die Konstanten der Mathematik :lol:

Egal wie es gemeint war, ich habe mich köstlich über den Beitrag von EyDu amüsiert.
Hmmm, wer weiß. Vielleicht werden wir es nie herausfinden...