Kann ich die Password-Eingabe in einem Javascript, die sonst über die Tastatur eingegeben wird, automatisch aus einem Pythonscript, das die Seite z.B. mit urllib2.urlopen aufgerufen hat, eingeben lassen?
Beim manuellen Einloggen sind keine Mausaktionen nötig. Nach dem Seitenaufbau reicht es 'Username', 'Tab', 'Password', 'Enter' einzugeben. Kann man die Eingabe z.B. über eine Methode der urllib2 o.ä. übertragen oder muß man stdin umbiegen?
Danke HWK
Automatisches Einloggen in Javascript
Hallo, Jens!
Zum Verständnis: Ich möchte Daten aus einer Webpage auslesen. Dazu muß ich mich vorher einloggen. Dies möchte ich alles automatisch machen. Auf der Password-Seite läuft aber ein Javascript, das die Daten verschlüsselt an den Server sendet. Ich weiß deshalb nicht, wie ich mich automatisiert einloggen kann?
Hallo, Leonidas!
Kannst Du einem Internet-Anfänger erklären, was dieses POST ist?
Danke HWK
Zum Verständnis: Ich möchte Daten aus einer Webpage auslesen. Dazu muß ich mich vorher einloggen. Dies möchte ich alles automatisch machen. Auf der Password-Seite läuft aber ein Javascript, das die Daten verschlüsselt an den Server sendet. Ich weiß deshalb nicht, wie ich mich automatisiert einloggen kann?
Hallo, Leonidas!
Kannst Du einem Internet-Anfänger erklären, was dieses POST ist?
Danke HWK
Am besten nimmst du dir die Site, wo das formular ist, schreibst dir die 2 Felder raus für den Login (Die müssen in html sein) dann gibste da die Daten per Python ein lässt bestätigen und solltest dann drinnen sein.
Aber ehrlichgesagt glaube ich nicht, dass du das realisieren kannst. Zumindest nicht allzuleicht. Wenn die Site nämlich einigermaßen gut gemacht ist, wird sie mit cookies oder Sessions arbeiten. D.h. du müsstest entweder die URL mit der SessionID haben und immer wieder benutzen und/oder du musst cookies mit deinem Script akzeptieren können.
Ich bin jetz kein Crack in Python, aber ich kenne mich gut mit HTML und PHP aus, von daher weiß ich, wie ungefähr alle Skripte aufgebaut sind. Und solange du nicht genau weist, was du unterstützen musst, musst du beides untersützen (cookies und Sessions). Ansonsten wirst du zwar das Formular abschicken können, aber nicht auf die Daten im internbereich zugreifen können.
Greetz
Aber ehrlichgesagt glaube ich nicht, dass du das realisieren kannst. Zumindest nicht allzuleicht. Wenn die Site nämlich einigermaßen gut gemacht ist, wird sie mit cookies oder Sessions arbeiten. D.h. du müsstest entweder die URL mit der SessionID haben und immer wieder benutzen und/oder du musst cookies mit deinem Script akzeptieren können.
Ich bin jetz kein Crack in Python, aber ich kenne mich gut mit HTML und PHP aus, von daher weiß ich, wie ungefähr alle Skripte aufgebaut sind. Und solange du nicht genau weist, was du unterstützen musst, musst du beides untersützen (cookies und Sessions). Ansonsten wirst du zwar das Formular abschicken können, aber nicht auf die Daten im internbereich zugreifen können.
Greetz
Das Formular sieht so aus:
Wie kann ich denn hier die Daten mit Python eingeben?
Die URL der nächsten Seite sieht so aus:
http://.../index.html?nick=410735096&sid=Z2T5PDBN005HICQ5H2GSUYQKD24QWJVC&ts=1152738331961&check=1193c5b052136a904d4115a1c614274f&redomain=0&view=depot&lg=de&ct=de&nh=0&dp=depot1
Die übergebenen Parameter ändern sich aber von Mal zu Mal. Was kann ich also damit anfangen?
MfG
HWK
Code: Alles auswählen
<form action="/dabip/DE/de/global/jsp/loginResult.jsp?_DARGS=/dabip/DE/de/sso/loginSSO.jsp.1" name="LoginForm" method="post"><input value="ISO-8859-1" type="hidden" name="_dyncharset">
<input name="content" type="hidden" value="/DE/de/personal/personalpage/personalpage.jsp">
<input type="hidden" name="template" value="">
<div class="pt10 pb7">
<table>
<tr>
<td style="margin-top:2px;" id="label_Username"><b>Benutzername:</b></td>
<td style="padding:5px;"><img name="gif_Username" src="/images/trading/dabde_errorpfeil_blank.gif" border="0" alt=""></td>
<td><input value="hwk" maxlength="20" type="text" class="edit" style="width:150px" size="20" name="username" id="Username"><input value=" " type="hidden" name="_D:username"></td>
<td> </td>
</tr>
<tr>
<td style="margin-top:2px;" id="label_Password"><b>Passwort:</b></td>
<td style="padding:5px;"><img name="gif_Password" src="/images/trading/dabde_errorpfeil_blank.gif" border="0" alt=""></td>
<td><input value="" type="password" class="edit" style="width:150px" name="password" id="Password"><input value=" " type="hidden" name="_D:password"></td>
<td class="pl10"><input type="image" src="/img/buttons/de/anmelden.gif" border="0" /></td>
</tr>
</table>
</div>
<div>
<span><a href="/dabip/homepage.jsp?content=/DE/de/global/personalize/register.jsp" tabindex="22">Kostenlos registrieren</a></span>
<span class="pl30"><a href="javascript:openLostLoginInfobereich();" tabindex="23">Zugangsdaten vergessen?</a></span>
</div>
<input value="/dabip/DE/de/sso/loginSSO.jsp.1" type="hidden" name="_DARGS"></form>
Die URL der nächsten Seite sieht so aus:
http://.../index.html?nick=410735096&sid=Z2T5PDBN005HICQ5H2GSUYQKD24QWJVC&ts=1152738331961&check=1193c5b052136a904d4115a1c614274f&redomain=0&view=depot&lg=de&ct=de&nh=0&dp=depot1
Die übergebenen Parameter ändern sich aber von Mal zu Mal. Was kann ich also damit anfangen?
MfG
HWK
-
- User
- Beiträge: 24
- Registriert: Dienstag 25. Juli 2006, 09:32
Hi!
Ja, also ein Vorschlag wäre, dass du dir dieses Formular in eine eigene HTML-Datei baust.
Jetzt bastelst du dir ein Java-Script, dass bei Aufruf der Seite automatisch die Felder füllt und dann per "POST" die Daten übergibt.
Ohne Javascript würde das auch gehen, aber dann sind immer nur die Felder belegt, und auf "Einloggen" (oder whatever ) müsstest du wieder von Hand klicken.
Nur ehrlich gesagt verstehe ich nicht, was Python da für eine Rolle spielt?
Naja, soweit mein erstes Posting hier im Forum
Gr33tz
Tafkadasom2k5
Ja, also ein Vorschlag wäre, dass du dir dieses Formular in eine eigene HTML-Datei baust.
Jetzt bastelst du dir ein Java-Script, dass bei Aufruf der Seite automatisch die Felder füllt und dann per "POST" die Daten übergibt.
Ohne Javascript würde das auch gehen, aber dann sind immer nur die Felder belegt, und auf "Einloggen" (oder whatever ) müsstest du wieder von Hand klicken.
Nur ehrlich gesagt verstehe ich nicht, was Python da für eine Rolle spielt?
Naja, soweit mein erstes Posting hier im Forum
Gr33tz
Tafkadasom2k5
Ich kam, ich sah, und ich ging einfach wieder...
Gott: "Nietzsche ist tot"
Gott: "Nietzsche ist tot"
Da ich keine wirkliche Ahnung von Java besitze, habe ich eine andere Web-Page gesucht und zum Glück gefunden, bei der die gewünschten Daten ohne Einloggen, nur durch Aufruf der Seite mit dem Suchparameter heruntergeladen werden können. Und das geht dann mit Python wirklich einfach: Öffnen der Seite mit url = urlopen(url_name), dann Auslesen der ganzen Seite mit data = url.read() und Suchen der Daten mit data.find() etc. und dann beliebige Weiterverarbeitung. Hier macht sich batteries-included für einen Internet-Laien wirklich bezahlt. Also deshalb Python. Für einen Profi geht das sicher auch mit C, Java etc.
-
- User
- Beiträge: 24
- Registriert: Dienstag 25. Juli 2006, 09:32
Achso, ich verstand das erst so, als wenn du einfach nur dem ständigen "Login" entgehen wolltest.
Da hätte eine einfache HTML mit u.U. etwas Java-Script gereicht.
Aber zum Daten finden/auswerten ist Python natürlich praktischer.
Gr33tz
Tafkadasom2k5
Da hätte eine einfache HTML mit u.U. etwas Java-Script gereicht.
Aber zum Daten finden/auswerten ist Python natürlich praktischer.
Gr33tz
Tafkadasom2k5
Ich kam, ich sah, und ich ging einfach wieder...
Gott: "Nietzsche ist tot"
Gott: "Nietzsche ist tot"
Hallo HWK,
ich hätte eine ganz andere Lösung für dich. Das Modul SendKeys dürfte dir bei deinem Problem sehr nützlich sein.
http://www.rutherfurd.net/python/sendkeys/
ich hätte eine ganz andere Lösung für dich. Das Modul SendKeys dürfte dir bei deinem Problem sehr nützlich sein.
http://www.rutherfurd.net/python/sendkeys/
mfg
Thomas :-)
Thomas :-)
Danke!
Das mit Sendkey klingt interessant. Das werde ich noch mal mit der zuerst von mir benutzten Weppage ausprobieren. Wenn das klappt, wäre der Vorteil, daß ich alle gewünschten Daten von einer URL auslesen könnte, was die Sache natürlich beschleunigen würde.
Das mit Sendkey klingt interessant. Das werde ich noch mal mit der zuerst von mir benutzten Weppage ausprobieren. Wenn das klappt, wäre der Vorteil, daß ich alle gewünschten Daten von einer URL auslesen könnte, was die Sache natürlich beschleunigen würde.
Für bestimmte Anwendungen ist Sendkey wirklich interessant. Ich habe mir aber vorgestellt, die Datenübergabe "unsichtbar" zu erledigen, funktioniert es in meiner Anwendung aber leider doch nicht. Sendkey muß die Daten ja dem aktiven Fenster, in diesem Fall also einem Browser übergeben. Den Browser möchte und muß ich aber nicht zwingend involvieren.
-
- User
- Beiträge: 24
- Registriert: Dienstag 25. Juli 2006, 09:32
Ja, dann mach es doch auf meine Weise:
Nimm dir das Formular aus der HTML-Einlog-Seite, und belege es "vor".
Bei dem Javascript, welches das dann beim Start automatisch macht, helfe ich dir dann.
Gr33tz
Tafkadasom2k5
Nimm dir das Formular aus der HTML-Einlog-Seite, und belege es "vor".
Bei dem Javascript, welches das dann beim Start automatisch macht, helfe ich dir dann.
Gr33tz
Tafkadasom2k5
Ich kam, ich sah, und ich ging einfach wieder...
Gott: "Nietzsche ist tot"
Gott: "Nietzsche ist tot"