curl + webseite parsen

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
The Hit-Man
User
Beiträge: 435
Registriert: Montag 20. Februar 2006, 18:11
Wohnort: Menden / Sauerland
Kontaktdaten:

ja, verstehe. nur wie surfe ich die neue seite, denn dann an? einfach den respone tauschen? oder wie verstehe ich das?

*EDIT*
bekomme immer nur dieses zurück, obwohl dort ja meine persönlichen nachrichten aufgelistet sein sollten.

Code: Alles auswählen

<html>
    <head>
    <title>onlineglueck.de</title>
    <script language="javascript">
	
	var reloadTime=50000;
	function reload(){
		if(typeof parent.frames[0] != "undefined") {
			if(typeof parent.frames[0].frames['reloader'] != "undefined"){
				parent.frames[0].frames['reloader'].location.href = '/olg/reload.olg';
				window.setTimeout("reload()",reloadTime);
			}
		}
	}
	window.setTimeout("reload()",reloadTime);
	
    </script>
    </head>
    <frameset rows="100%,0"  FRAMEBORDER=0 BORDER=0 FRAMESPACING=0>
        <frame src="/olg/index.olg?update=ok" name="olgmain">
        <frame src="/olg/reload.olg" noresize name="reloader">
    </frameset>
</html>
<html>
    <head>
    <title>onlineglueck.de</title>
    <script language="javascript">
	
	var reloadTime=50000;
	function reload(){
		if(typeof parent.frames[0] != "undefined") {
			if(typeof parent.frames[0].frames['reloader'] != "undefined"){
				parent.frames[0].frames['reloader'].location.href = '/olg/reload.olg';
				window.setTimeout("reload()",reloadTime);
			}
		}
	}
	window.setTimeout("reload()",reloadTime);
	
    </script>
    </head>
    <frameset rows="100%,0"  FRAMEBORDER=0 BORDER=0 FRAMESPACING=0>
        <frame src="/olg/index.olg?update=ok" name="olgmain">
        <frame src="/olg/reload.olg" noresize name="reloader">
    </frameset>
</html>
<html>
    <head>
    <title>onlineglueck.de</title>
    <script language="javascript">
	
	var reloadTime=50000;
	function reload(){
		if(typeof parent.frames[0] != "undefined") {
			if(typeof parent.frames[0].frames['reloader'] != "undefined"){
				parent.frames[0].frames['reloader'].location.href = '/olg/reload.olg';
				window.setTimeout("reload()",reloadTime);
			}
		}
	}
	window.setTimeout("reload()",reloadTime);
	
    </script>
    </head>
    <frameset rows="100%,0"  FRAMEBORDER=0 BORDER=0 FRAMESPACING=0>
        <frame src="/olg/index.olg?update=ok" name="olgmain">
        <frame src="/olg/reload.olg" noresize name="reloader">
    </frameset>
</html>
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

The Hit-Man hat geschrieben:ja, verstehe. nur wie surfe ich die neue seite, denn dann an? einfach den respone tauschen? oder wie verstehe ich das?
Einfach ein weiteres ``br.open()``.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
The Hit-Man
User
Beiträge: 435
Registriert: Montag 20. Februar 2006, 18:11
Wohnort: Menden / Sauerland
Kontaktdaten:

komisch, ich hatte es so versuchen zu lösen, wie in der doku beschrieben, ist das etwa nicht richtig? deshalb fragte ich auch, wie ich eine neue seite ansurfe.

Code: Alles auswählen

response = urlopen("http://www.onlineglueck.de/olg")
forms = ParseResponse(response, backwards_compat=False)
form = forms[0]
form["nickname"] = "mein nickname"
form["password"] = "mein passwort"
urlopen(form.click())
somit, kann ich mich zu mindest einloggen
irgendwie habe ich wohl gerade ne blockarde ;) völlig verwirrt, irgendwie.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Du nutzt ClientForm, wir sprechen hier aber die ganze Zeit schon von Mechanize. Warum nutzt du es denn nicht? Das Beispiel ist doch direkt auf der ersten Seite, die dir dazu verlinkt wurde.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
The Hit-Man
User
Beiträge: 435
Registriert: Montag 20. Februar 2006, 18:11
Wohnort: Menden / Sauerland
Kontaktdaten:

ja, ich dachte, ich nutze das die ganze zeit !!!! hab ja extra nen bookmark auf die seite gemacht, und hatte mir doch die beispiele angesehen.

http://wwwsearch.sourceforge.net/mechanize/

ich bin da wohl dann auf ClientForm gestoßen, auf der seite. habe die beispiele jedoch gesehen, aber irgendwie, ist mir da bis jetzt noch unklar, wie ich mich einloggen soll.
bin wohl nicht richtig klar gekommen, damit die felder für nickname und passwort zu füllen. ich schaus mir noch mal an.

*EDIT*

nach dem beispiel nach, wirds ja so gemacht.

Code: Alles auswählen

import re
from mechanize import Browser

br = Browser()
br.open("http://www.onlineglueck.de/olg/")
br.select_form(name="loginfrm")
br["nickname"] = ["mein nickname"]
danach sollte ich noch das passwort setzen und den submit machen. jedoch bekomme ich bei dem nicknamen schon diese meldung:

Code: Alles auswählen

TypeError: must assign a string
*EDIT*
die zeile muß so heißen, dann gehts:

Code: Alles auswählen

br["nickname"] = "mein nickname"
argh !!!!!!!!!!!!! jetzt loggt er sich nicht mal vernünftig ein :( bekomme also immer die meldung vom server, das ich nicht eingeloggt sein :( *grummel*
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Entweder postest du nicht den ganzen Code oder es fehlt ein ``br.submit()``.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
The Hit-Man
User
Beiträge: 435
Registriert: Montag 20. Februar 2006, 18:11
Wohnort: Menden / Sauerland
Kontaktdaten:

also, hier mein code:

Code: Alles auswählen

import re
from mechanize import Browser

username = "mein_nickname"
password = "mein_passwort"
browser = Browser()
url = "http://www.onlineglueck.de/olg"
browser.open(url)
browser.select_form('loginfrm')
browser['nickname'] = username
browser['password'] = password
response = browser.submit()

print response.read ()
so, nun sollte ich meine persönliche seite, aus dem chat bekommen, kommt aber nur die seite, das ich mich nicht einloggen konnte, also falsches passwort oder falscher benutzer. mit dem beispiel, das ich vorher hatte, das mit dem ClientForm, konnte ich mich zu mindest einloggen. mit diesem code, geht es nicht. ändere ich jedoch, zum beispiel, die feldnamen, in dem code, bekomme ich von python auch eine brerechtigte fehlermeldung, das das angegebene feld nicht exestiert. das ist ja auch richtig. trotzdem wie gesagt, kann ich mich mit diesem code, nicht auf die seite anmelden.

vielleicht gibts probleme, mit dem cookie.

vielleicht könntest du ein kleines beispiel script, für diese seite zeigen, denn hier haben wir ja beide benutzer und passwort daten, um es zu testen. denke nicht, das du unbedingt auf OLG angemeldet bist ;)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

The Hit-Man hat geschrieben:vielleicht könntest du ein kleines beispiel script, für diese seite zeigen, denn hier haben wir ja beide benutzer und passwort daten, um es zu testen. denke nicht, das du unbedingt auf OLG angemeldet bist ;)
Ok, kann ich machen:

Code: Alles auswählen

from mechanize import Browser

br = Browser()
br.open('http://www.python-forum.de/login.php')
br.select_form(nr=0)
br['username'] = 'Leonidas'
br['password'] = 'unbekannt'
br.submit()

resp = br.open('http://www.python-forum.de/privmsg.php?folder=inbox')
print resp.read()
Das sollte die Inbox dann anzeigen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
The Hit-Man
User
Beiträge: 435
Registriert: Montag 20. Februar 2006, 18:11
Wohnort: Menden / Sauerland
Kontaktdaten:

sehr komisch. funktioniert, und auch mit der OLG seite. danke noch mal. jetzt interessiert mich, was ich falsch gemacht habe ;) aber gehen tuts jetzt ;)

danke noch mal.
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

The Hit-Man hat geschrieben:sehr komisch. funktioniert, und auch mit der OLG seite. danke noch mal. jetzt interessiert mich, was ich falsch gemacht habe ;)
Zum Einloggen hat Leonidas die login.php benutzt, die drängt sich irgendwie auf. ;)
The Hit-Man
User
Beiträge: 435
Registriert: Montag 20. Februar 2006, 18:11
Wohnort: Menden / Sauerland
Kontaktdaten:

die nutze ich für meine seite, die ich auslesen möchte, nicht. egal, welche seite ich aufrufe, komme ich eh auf den login. daher scheint es wohl bei mir egal zu sein ;)
Antworten