wget 및 --post-data 및 --save-cookies 옵션을 사용하여 웹 사이트의 로그인 양식을 통과 할 수있었습니다.wget : post-data를 보내기 전에 필드 정보 가져 오기
이제 웹 페이지의 일부 입력란을 채우고 제출을 시도합니다. 문제는 매번 다른 값인 웹 페이지에 '튜링'숨겨진 필드가 있다는 것입니다.
내가 시도한 것은 쿠키가로드 된 상태에서 웹 페이지를 열고 튜링 값을 얻는 것입니다. 그런 다음 --post-data를 사용하여 다른 wget을 수행하고 튜링 필드를 포함하여 모든 필드를 그 안에 넣습니다. 그러나 그것은 효과가 없습니다.
또한 웹 페이지에는 여러 양식이 있으므로 양식 이름을 추가해야합니다. 옳은?
아이디어가 있으십니까?
/usr/bin/wget -q --load-cookies cookie.txt http://www.myurl.com/article.php -O output.html
TURING=$(sed -n -e 's/.*name="turing" value="\(.*\)">.*/\1/p' output.html)
/usr/bin/wget -q --load-cookies cookie.txt --post-data "messageinput[0]=mysubject&messageinput[1]=&messageinput[2]=mymessage&turing=${TURING}&postmessage=1&mesbut=1" http://www.myurl.com/article.php -O output2.html
그러나이 작동하지 않습니다 : 나는 (로그인 후)입니다 시도 그래서
<form action="article.php" method="post" name="postmessage">
<table width="100%" class="table_lines" border="0" cellspacing="0" cellpadding="6">
<tr>
<td>subject</td>
<td><input type="text" name="messageinput[0]" value=""></td>
</tr>
<tr>
<td>tags</td>
<td><input type="text" name="messageinput[1]" value=""></td>
</tr>
<tr>
<td>Message</td>
<td><input type="text" name="messageinput[2]" value=""></td>
</tr>
<td colspan="2" align="center"><input name="mesbut" type="submit" value="Post Message" onclick="document.postmessage.mesbut.value='Posting..'; document.postmessage.mesbut.disabled=true;document.postmessage.submit();"></td>
</table>
<input type="hidden" name="turing" value="wgbyp">
</form>
.
올바른 값인지 확인하려면'printf % q "$ TURING"시도해보십시오. – l0b0
거기에 --save-cookies와 --load-cookies가 있습니다. 첫 번째 요청에서 쿠키를 받거나 두 플래그를 모두 사용하여 쿠키를 저장하고 서버로 보내야합니다. 둘 다 시도하십시오. – Marcel
욕심 많은 양 "*'을 조심스럽게 쓰면, _sed_가 당신보다 더 많은 것을 얻을 수 있습니다. 시도해보십시오 :'value = "\ ([^"] * \) "' –