mechanize und/oder Beautiful Soup

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
joker21
User
Beiträge: 17
Registriert: Sonntag 14. Oktober 2007, 11:36

Hallo,

ich habe schon ein paar mal mittels Beautiful Soup Webseiten geparst.

Nun möchte ich mich auf der Seite
http://www.magickartenmarkt.de/index.php
einloggen und ein paar Informationen auslesen.

Mit Beautiful Soup kann ich mich soweit ich weiß nicht einloggen. Oder?
Mit mechanize kann ich mich einloggen, aber den nicht das HTML parsen. Richtig?

Zunächst habe ich versucht, mich einzuloggen (mechanize). Ob das Einloggen erforlgreich war, könnte ich z.B. überprüfen, wenn ich schaue, ob im Seitentext der Hinweis "Du hast ein falsches Passwort eingegeben." steht. Aber ich wüsste nicht, wie das mit mechanize geht.

(Ich bin lernwilliger Laie. Also bitte beim Antorten langsam sprechen... :wink: )

Gruß
Jochen
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Naja, du kannst dir ja mit Mechanize den Code ausgeben lassen und den mit html5lib, lxml.html oder BeautifulSoup scrapen. Die Module schließen sich ja nicht gegenseitig aus.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
joker21
User
Beiträge: 17
Registriert: Sonntag 14. Oktober 2007, 11:36

Leonidas hat geschrieben:Naja, du kannst dir ja mit Mechanize den Code ausgeben lassen und den mit html5lib, lxml.html oder BeautifulSoup scrapen. Die Module schließen sich ja nicht gegenseitig aus.
Leider ist mir das noch nicht gelungen. Wenn ich mittels

Code: Alles auswählen

    br = mechanize.Browser()
    br.open('http://www.magickartenmarkt.de/index.php')
eine Seite laden, wie übergebe ich dann den HTML-Code an BS?

Code: Alles auswählen

    soup = BeautifulSoup(br
führt zu einem Fehler.
joker21
User
Beiträge: 17
Registriert: Sonntag 14. Oktober 2007, 11:36

Jetzt habe ich es.

Code: Alles auswählen

    br.open('http://www.magickartenmarkt.de/index.php'')
    source=br.response()
    soup = BeautifulSoup(source)
Das funktioniert, ohne dass ich verstehe, was das response macht. Kannst Du mir das erklären?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

``br.response()`` gibt dir einfach den HTML-Code, den du dann an BeautifulSoup weiterleistest.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
joker21
User
Beiträge: 17
Registriert: Sonntag 14. Oktober 2007, 11:36

Leonidas hat geschrieben:``br.response()`` gibt dir einfach den HTML-Code, den du dann an BeautifulSoup weiterleistest.
So einfach... Danke für die Hilfe.

Jochen
Antworten