我目前正試圖用perl自動登錄到下面的網站。我曾嘗試使用 mechanize,但我認為它需要 JS 功能。我已經研究了JavaScricpt Mech Plugin,但其檔案對我來說不是很好理解。我不確定如何進一步處理這個問題,因為我看不到md5()函式,所以我無法在perl代碼中重構它。
相關部分是:
HTML:
< form method="POST" name="logonForm" onsubmit="encode(); 檔案。 submitForm.submit();return false;">
<tr class="Element">
<td class="text" id="ID_Text4"> <nobr>用戶名稱。 </nobr></td>/span>
< td class="text" align="left">
<select name="用戶名" style="寬度。 125">
<option value="user" id="ID_Text5"> 用戶 </option>
< option selected value="admin" id="ID_Text6"> admin </option>
</select>/span>
</td>/span>
</tr>/span>
<tr class="Element">
<td class="text" id="ID_Text7"> <nobr>/span>密碼。 </nobr></td>
<td class="text">
< input type="password" size="10" name=" password" style="width: 125">
</td>/span>
</tr>
<form method="POST" name="submitForm">
<input type="hidden"/span> name="encoded">。
<input type="hidden" name="nonceA">
< input type="button" name="goto" value="Log On" onClick="encode(); submit();" style="width: 125" ID="ID_Button1">
<input type="hidden" name="URL" value="/">>
JS:
function encode()
{
//設定隱藏欄位的值為md5回傳的值。
document.submitForm.encoded. value = document.logonForm。 username。 value ":" md5(document.logonForm. username.value " :" document. logonForm.password。 value " :" document. submitForm.nonceA.value)。)
/* Dont used */.
document.submitForm.URL.disabled = true;
}
uj5u.com熱心網友回復:
你試過md5函式嗎,來自Digest::MD5?
use Digest::MD5 qw(md5)
使用 WWW::Mechanize。
my $encoded = $username . ':' . md5($username . ':' . $password . ':' . $nonce)。)
$mech->post(
$url,
Content => {
'encoded' => $encoded,
'nonceA' => $nonce,
....
},
);
uj5u.com熱心網友回復:
我注意到 "nonceA "值從未被設定,所以我復制了html和js的依賴,并在本地運行html。我在html中使用window.prompt(document.submitForm.encoded.value);來查看正在發送的內容。
my $form = $mech-> form_name('submitForm') 。
$form->value('encoded', '<copied here> ')。
之后我用:
提交$mech-> submit_form();
這對我來說很有幫助。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/311358.html
標籤:
上一篇:這是什么型別的分揀?
