2013-07-02 39 views
0

有人能告訴我爲什麼我的命令不起作用嗎?wget未設置Cookie

這裏是我的形式:

<form id="query" method="POST" action="https://weblogin.mycompany.com/" 
enctype="application/x-www-form-urlencoded" autocomplete="off"> 
<table border="0" align="center"> 
<tr> 
<td class="fieldname">Username:</td> 
<td><input type="text" name="user" size="20" value="" class="inputfield" /> </td> 
</tr> 
<tr> 
<td class="fieldname">Password:</td> 
<td><input type="password" name="pass" class="inputfield" /></td> 
</tr> 
<tr> 
<td class="fieldname"></td> 
<td><input type="submit" value="Log in &raquo;" /></td> 
</tr> 
</table> 
<div id='notifyuser'></div> 
</form> 

這裏是我的wget命令:

%的wget --save餅乾/tmp/cookies.txt --post數據「用戶=添加my_id & pass = my_passwd'\ https://weblogin.mycompany.com/

當我執行上面的wget命令後,cookie文件是空的。

% cat /tmp/cookies.txt 
# HTTP cookie file. 
# Generated by Wget on 2013-07-02 16:23:39. 
# Edit at your own risk. 

和HTTP響應:

% wget --keep-session-cookies --save-cookies /tmp/wget03_cookies.txt --post-data 'user=my_id&pass=my_passwd' **https://weblogin.mycompany.com/** 
--2013-07-03 09:52:06-- https://weblogin.mycompany.com/ 
Resolving weblogin.mycompany.com... 1.1.1.1 
Connecting to weblogin.mycompany.com|1.1.1.1|:443... connected. 
HTTP request sent, awaiting response... 200 OK 
Length: 4477 (4.4K) [text/html] 
Saving to: `index.html.10' 

100%[===========================================================================>] 4,477  --.-K/s in 0s 

2013-07-03 09:52:06 (36.8 MB/s) - `index.html.10' saved [4477/4477] 

我做了什麼錯?


我可能會發現在這個線程解決方案:wget with authentication

解決的辦法是這樣的:

#!/bin/sh 

# get the login page to get the hidden field data 
wget -a log.txt -O loginpage.html http://foobar/default.aspx 
hiddendata=`grep value < loginpage.html | grep foobarhidden | tr '=' ' ' | awk '{print $9}' | sed s/\"//g` 
rm loginpage.html 

# login into the page and save the cookies 
postData=user=fakeuser'&'pw=password'&'foobarhidden=${hiddendata} 
wget -a log.txt -O /dev/null --post-data ${postData} --keep-session-cookies --save-cookies cookies.txt http://foobar/default.aspx 

# get the page your after 
wget -a log.txt -O results.html --load-cookies cookies.txt http://foobar/lister.aspx?id=42 
rm cookies.txt 

我不明白的是 - 那我該怎麼用在產生hiddendata的同時替代'foobarhidden'?

我相信下面的部分應該給我答案。但我不知道究竟該做什麼:

% grep value < loginpage.html | grep hidden 
3:109:<input type=hidden name=pubcookie_g_req value="b25lPWFsb2hhLmFrYW1haS5jb20mdHdvPWFsb2hhJnRocmVlPTEmZm91cj1hNWEmZml2ZT1HRVQmc2l4PWFsb2hhLmFrYW1haS5jb20mc2V2ZW49THc9PSZlaWdodD0mYWthX2ZyYWc9Jmhvc3RuYW1lPWFsb2hhLmFrYW1haS5jb20mbmluZT0xJmZpbGU9JnJlZmVyZXI9KG51bGwpJnNlc3NfcmU9MCZwcmVfc2Vzc190b2s9NjMzMzQ0OTI3JmZsYWc9MA=="> 
4:110:<input type=hidden name=post_stuff value=""> 
5:111:<input type=hidden name=relay_url value="https://weblogin.mycompany.com/PubCookie.reply"> 

謝謝!!

+1

從服務器回來的HTTP響應中有什麼?也許有錯誤返回? – RichieHindle

+0

順便說一下,我的wget的版本是1.12。 –

+0

謝謝@RichieHindle我會在'回答'區域發佈回覆,因爲這裏放的時間太長。再次感謝。 –

回答

0

在你的問題中,你說你連接到https://...,但在你的日誌裏是http://... - 也許這就是問題所在?確保您在命令行上使用https://...

+0

謝謝你指出,@RichieHindle!我用https重試它,結果是一樣的。同樣,該消息將被髮布在答案區域。另外,頁面'weblogin.mycompany.com'中有很多javascript代碼。這會導致wget停止工作嗎?再次感謝! –

+0

@CharlieYen:您應該將新信息編輯到問題中,而不是將其作爲答案發布。 – RichieHindle

+0

謝謝你告訴我,@RichieHindle。仍然是這個論壇的新手。對於不遵守規則感到抱歉。我將刪除應答區域中的新信息並更新原始信息。再次感謝。 –