Seite 1 von 2

Verfasst: Mittwoch 9. April 2008, 12:23
von The Hit-Man
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>

Verfasst: Mittwoch 9. April 2008, 12:41
von Leonidas
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()``.

Verfasst: Mittwoch 9. April 2008, 12:51
von The Hit-Man
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.

Verfasst: Mittwoch 9. April 2008, 12:53
von Leonidas
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.

Verfasst: Mittwoch 9. April 2008, 12:59
von The Hit-Man
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*

Verfasst: Mittwoch 9. April 2008, 15:28
von Leonidas
Entweder postest du nicht den ganzen Code oder es fehlt ein ``br.submit()``.

Verfasst: Mittwoch 9. April 2008, 15:41
von The Hit-Man
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 ;)

Verfasst: Mittwoch 9. April 2008, 15:56
von Leonidas
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.

Verfasst: Mittwoch 9. April 2008, 16:12
von The Hit-Man
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.

Verfasst: Donnerstag 10. April 2008, 15:57
von mkesper
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. ;)

Verfasst: Freitag 11. April 2008, 12:58
von The Hit-Man
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 ;)