ubuntuusers.de

wget --post-data login

Status: Ungelöst | Ubuntu-Version: Xubuntu 12.10 (Quantal Quetzal)
Antworten |

sarbot

Anmeldungsdatum:
3. Februar 2013

Beiträge: 37

Hallo,

ich habe schwierigkeiten mit der Umsetzung der --post-data option von wget. Ziel ist es wie schwer zu erwarten mich direkt in die Seite einzuloggen. Der Login wird in einem Cookie gespeichert. (--save-cookie cookie.txt) Der form-htmltag der loginseite sieht wie folgt aus:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<form name="frmLogin" id="frmLogin" method="post" action="/login/">
        <input type="hidden" name="rememberme" id="rememberme" value="1" />
        <table align="center" style="color:#805025;">
            <tr>
                <td height="10"></td>
            </tr>
            <tr>	
                <td align="right">Account:</td>
                <td>
                    <div class="inputFrame" style="width:170px;">
                        <div class="inputWrap">
                            <input type="text" name="strID" id="strID" tabindex="1" maxlength="25">
                        </div>
                    </div>
                </td>
            </tr>  
            <tr>
                <td height="5"  colspan="2"></td>
            </tr>
            <tr>	
                <td align="right">Password:</td>
                <td>
                    <div class="inputFrame" style="width:170px;">
                        <div class="inputWrap">
                            <input type="password" name="strPW" id="strPW" tabindex="2" maxlength="25">
                        </div>
                    </div>
                </td>
            </tr>  
            			<tr>
            	<td height="10"></td>
            </tr>
            <tr>
            	<td>&nbsp;</td>
                <td align="left"><div class="cpBtn glob" id="checkBtn" onclick="return fnChkFrmLg();"><p>LOG IN</p></div></td>
            </tr>
        </table>
        <input type="submit" onclick="return fnChkFrmLg();" style="height:1px; width:1px; position:absolute; left:-9999px;" />
        </form>  

Aus der man wget und ersten google Recherchen dachte ich mir

1
wget --save-cookies cookies.txt --post-data "strID=NAME&strPW=PASSWORT"

müsste die die Seite eingeloggt laden, tuts aber nicht. In einigen Beispielen habe ich gesehen dass noch ein Wert für die Anmeldung in der post-data mitgeliefert wird: sowas wie "...&Anmeldung=LOGIN". Ist es das was fehlt ? Wie wäre soetwas auf meine konkrete Loginseite zu übertragen. ne id="checkBtn" ist ja gegeben. Wie gebe ich der aber das "DRAUFKLICKEN" mit. Die Javaskript funktion fnChkFrmLg(); ist folgende:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
function fnChkFrmLg() {
	if (document.frmLogin.strID.value.length == 0 || document.frmLogin.strID.value == "Username") {
		alert ('Please enter a valid username.');
		frmLogin.strID.value = "";
		frmLogin.strID.focus();
		return false;
	}
	if (document.frmLogin.strPW.value.length == 0 || document.frmLogin.strPW.value == "Password") {
		alert ('Please enter a valid password.');
		frmLogin.strPW.value = "";
		frmLogin.strPW.focus();
		return false;
	}
	document.frmLogin.submit();
	return true;
}

wäre "...&checkBtn=true" denkbar ? ich habe leider nicht besonders viel Ahnung von javascript, aber die funktion liefert letzten Endes nur den Wert true zurück richtig? Gut möglich, dass ich da irgendwelche Zusammenhänge durcheinander werfe. Aber geladen wird immer nur die Loginseite ☹.

Lg und Danke schonmal Sarbot

ps: Ich weiß nicht ob dieses Problem ins Software-Forum gehört weils um wget Bedienung geht, oder ob es vlt. in einem Webmaster Forum besser aufgehoben wäre. Ich hoffe an dieser Stelle ich bin der DAU und es wird sich nicht zusehr in Richtung Javascript vertiefen 😉

Prof._Frink

Anmeldungsdatum:
29. Mai 2010

Beiträge: 1096

Hey,

ich habe mir das Problem jetzt nicht im Detail angesehen, aber ich kenne die prinzipielle Schwierigkeit. Ich würde dir empfehlen, bei einem normalen Login mit einem Webbrowser, die gesendeten Post-Daten mit dem Firefox-Addon HttpFox zu beobachten, damit findet man ziemlich schnell die korrekten Daten. Es ist immer möglich, dass da noch irgendwelche zusätzlichen Session-Daten gesendet werden, an die man jetzt erstmal nicht denkt oder so.

Viel Erfolg

Frink

sarbot

(Themenstarter)

Anmeldungsdatum:
3. Februar 2013

Beiträge: 37

Ein durchaus praktisches Addon danke für den Tip ☺

ok in den post data steht nichts von wegen login... Es ist nur name und passwort (und rememberme=1 bzw. 0). Allerdings ist als Typ "Redirect to :/account/" angegeben. Das hat mich zumindest schonmal dazu bewegt den wget Befehl um --max-redirect=1 zu erweitern aber auch das funktioniert nicht. Direkt die Url .../account/ anzugeben mit post-data ebenfalls nicht. Ich werde morgen nocheinmal die man und suchmaschiene zu Rate ziehen ob ich eventuell auch eine weiterleitung mit postdata anstelle einer einfachen url nutzen muss/kann.

Der gespeicherte Cookie ist übrigens auch leer also hat kein login stattgefunden. Laut httpfox steht im cookie (oder in den cookies ?) name passwort (verschlüsselt) ip und browser agent.

Prof._Frink

Anmeldungsdatum:
29. Mai 2010

Beiträge: 1096

sarbot schrieb:

Der gespeicherte Cookie ist übrigens auch leer also hat kein login stattgefunden. Laut httpfox steht im cookie (oder in den cookies ?) name passwort (verschlüsselt) ip und browser agent.

Ja, kann sein, dass du so Optionen wie:

--user-agent="Mozilla/5.0 (X11; Linux x86_64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1" -e robots=off

setzen musst, um der Seite vorzugaukeln, du wärst ein Browser. Und manchmal auch:

--referer="http://Die_Seite_von_der_aus_man_sich einloggt"

sarbot schrieb:

Allerdings ist als Typ "Redirect to :/account/" angegeben. Das hat mich zumindest schonmal dazu bewegt den wget Befehl um --max-redirect=1 zu erweitern aber auch das funktioniert nicht.

Kann aber auch sein, dass du das in zwei Schritten machen musst.

Antworten |