Что нового

Получение значений из HTML тега

Olim98

Новичок
Сообщения
48
Репутация
2
Всем здравствуйте! Имеется HTML код:
Код:
<link id="CSSLink" rel="stylesheet" href="../css/bitcoinker.css?v3" /></head>
<body>
    <form method="post" action="?p=7388CEBA0B8B" onsubmit="javascript:return WebForm_OnSubmit();" id="MainForm">
<div class="aspNetHidden">
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTczMjIyMzkxOA9kFgICAQ9kFgICAQ8WAh4EaHJlZgUVY3NzL2JpdGNvaW5rZXIuY3NzP3YzZGQB4YsB5jhRHHaWiD88qEjRki5C30MPE9/ve8QlFiTsVA==" />
</div>

<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['MainForm'];
if (!theForm) {
    theForm = document.MainForm;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
//]]>
</script>


<script src="/WebResource.axd?d=Hk4OZ6z98lTsOU8YMM_I81icEJQ3sQ4-J01-L79nxbe0tUNBvLbAsVONR45MPc3t2CM26nYsrSAqhNsLvFKU9zb7KabB4eziIbtjUO0ACSM1&amp;t=635147635110920824" type="text/javascript"></script>


<script src="/WebResource.axd?d=2SAdUqJVFU94jaU3CQyb1_bvLpIeHOV3GVD9ByIzNQoIkPKw6rG_ur6C7F5OPt4soquH8d9oyi4gk2bc4ER4CUTGZWaWWNJwnQOY1r8ClDI1&amp;t=635147635110920824" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
function WebForm_OnSubmit() {
if (typeof(ValidatorOnSubmit) == "function" && ValidatorOnSubmit() == false) return false;
return true;
}
//]]>
</script>

<div class="aspNetHidden">

	<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEdAAORS+fekm3CG6pA5i53VzgrGCGTQnlJ4vqqkkgU7QnvIw/+MqK/9iYZ4AwxFKjgcvdnWYLEIeWwqcDU4ekuMNSWsLQ9uFHt0D60fry2ClYh6A==" />
</div>
Необходимо получить с кода
Код:
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTczMjIyMzkxOA9kFgICAQ9kFgICAQ8WAh4EaHJlZgUVY3NzL2JpdGNvaW5rZXIuY3NzP3YzZGQB4YsB5jhRHHaWiD88qEjRki5C30MPE9/ve8QlFiTsVA==" />
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEdAAORS+fekm3CG6pA5i53VzgrGCGTQnlJ4vqqkkgU7QnvIw/+MqK/9iYZ4AwxFKjgcvdnWYLEIeWwqcDU4ekuMNSWsLQ9uFHt0D60fry2ClYh6A==" />
параметр name и value с каждого input. Заранее спасибо!!!
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Я бы делал так:
Код:
$data = FileRead('код страницы.html');Конечно же не нужно его записывать в файл. Тут для примера
$document = ObjCreate("HTMLFILE")
$document.write($data)
$hiddeninputs = $document.querySelectorAll("input[type='hidden']")
For $item = 0 To $hiddeninputs.length -1
	$input = $hiddeninputs.item($item)
	ConsoleWrite($input.name & @CRLF)
	ConsoleWrite($input.value & @CRLF)
	ConsoleWrite('==========' & @CRLF)
Next
 
Автор
O

Olim98

Новичок
Сообщения
48
Репутация
2
inververs
скрипт вылетает с указанием на то что
$document.querySelectorAll("input[type='hidden']")
не является объектом. Может показать полностью весь код? Вот в общем полный HTML код:
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
	Bitcoinker - Faucet Frame
</title><script type="text/javascript">
//<![CDATA[
try{if (!window.CloudFlare) {var CloudFlare=[{verbose:0,p:0,byc:0,owlid:"cf",bag2:1,mirage2:0,oracle:0,paths:{cloudflare:"/cdn-cgi/nexp/dokv=88e434a982/"},atok:"0e4fac145ad6a11a6cdd9cc310dfcbc0",petok:"e17865228d8ac693400f33c472a0f7cf27112a70-1409195242-1800",zone:"bitcoinker.com",rocket:"0",apps:{}}];CloudFlare.push({"apps":{"ape":"6f56eea5394c0fa7f77701f584284e41"}});!function(a,b){a=document.createElement("script"),b=document.getElementsByTagName("script")[0],a.async=!0,a.src="//ajax.cloudflare.com/cdn-cgi/nexp/dokv=97fb4d042e/cloudflare.min.js",b.parentNode.insertBefore(a,b)}()}}catch(e){};
//]]>
</script>
<link id="CSSLink" rel="stylesheet" href="../css/bitcoinker.css?v3" /></head>
<body>
    <form method="post" action="?p=7388CEBA0B8B" onsubmit="javascript:return WebForm_OnSubmit();" id="MainForm">
<div class="aspNetHidden">
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTczMjIyMzkxOA9kFgICAQ9kFgICAQ8WAh4EaHJlZgUVY3NzL2JpdGNvaW5rZXIuY3NzP3YzZGQB4YsB5jhRHHaWiD88qEjRki5C30MPE9/ve8QlFiTsVA==" />
</div>

<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['MainForm'];
if (!theForm) {
    theForm = document.MainForm;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
//]]>
</script>


<script src="/WebResource.axd?d=Hk4OZ6z98lTsOU8YMM_I81icEJQ3sQ4-J01-L79nxbe0tUNBvLbAsVONR45MPc3t2CM26nYsrSAqhNsLvFKU9zb7KabB4eziIbtjUO0ACSM1&amp;t=635147635110920824" type="text/javascript"></script>


<script src="/WebResource.axd?d=2SAdUqJVFU94jaU3CQyb1_bvLpIeHOV3GVD9ByIzNQoIkPKw6rG_ur6C7F5OPt4soquH8d9oyi4gk2bc4ER4CUTGZWaWWNJwnQOY1r8ClDI1&amp;t=635147635110920824" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
function WebForm_OnSubmit() {
if (typeof(ValidatorOnSubmit) == "function" && ValidatorOnSubmit() == false) return false;
return true;
}
//]]>
</script>

<div class="aspNetHidden">

	<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEdAAORS+fekm3CG6pA5i53VzgrGCGTQnlJ4vqqkkgU7QnvIw/+MqK/9iYZ4AwxFKjgcvdnWYLEIeWwqcDU4ekuMNSWsLQ9uFHt0D60fry2ClYh6A==" />
</div>
        <div id="FaucetFormPanel">
	
            <div id="CaptchaPanel">
		
                <span id="SolveMediaValidator" style="visibility:hidden;"></span>
		<!-- start SolveMedia puzzle widget -->
		<script type="text/javascript">
			var ACPuzzleOptions = {
				theme:		'white',
				tabindex :	'0'
			};

		</script><script type="text/javascript" src="http://api.solvemedia.com/papi/challenge.script?k=D676hQPl31O8LzlOp8f2rl5Ag83nxnxl">

		</script>
		<noscript>
			<iframe height="300" width="500" frameborder="0" src="http://api.solvemedia.com/papi/challenge.noscript?k=D676hQPl31O8LzlOp8f2rl5Ag83nxnxl">

			</iframe>
<textarea name="adcopy_challenge" rows="3" cols="40"></textarea><input type="hidden" name="adcopy_response" value="manual_challenge" />
		</noscript>
		<!-- end SolveMedia puzzle widget -->
		    
            
	</div>
        
            <div id="FaucetForm">
		
                <p>
                    Enter your bitcoin address, email or microwallet username and click Submit...
                </p>
                <input name="MicrowalletUsernameTextbox" type="text" value="1FLqBeBAUz6AN7Kkj3eAzCD4jsvXFpbiSG" id="MicrowalletUsernameTextbox" class="microwallet-username" placeholder="Bitcoin address, email or microwallet.org username" />    
                <input type="submit" name="SubmitButton" value="Submit" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;SubmitButton&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" id="SubmitButton" class="submit-button" />
            
	</div>        
        
</div>

        

              
    
<script type="text/javascript">
//<![CDATA[
var Page_Validators =  new Array(document.getElementById("SolveMediaValidator"));
//]]>
</script>


<script type="text/javascript">
//<![CDATA[

var Page_ValidationActive = false;
if (typeof(ValidatorOnLoad) == "function") {
    ValidatorOnLoad();
}

function ValidatorOnSubmit() {
    if (Page_ValidationActive) {
        return ValidatorCommonOnSubmit();
    }
    else {
        return true;
    }
}
        //]]>
</script>
</form>    
</body>
</html>
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
я бы сделал так. может не очень красиво, но
Код:
#include <array.au3>
#include <string.au3>
$fo = FileRead('файл.html')
$strb1 = _StringBetween($fo,'name="__','" id="')
$strbt2 = _StringBetween($fo,'" value="/','" ')
_ArrayDisplay($strb1,'Name')
_ArrayDisplay($strbt2,'Value')
 
Автор
O

Olim98

Новичок
Сообщения
48
Репутация
2
joiner
name все корректно отображает, а вот value только два, а нужно чтобы и пустые учитывал, потому что есть вероятность что они тоже не будут пустые. Но все равно спасибо!
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
ну когда они не будут пустые, то они тоже отобразятся на экране. а раз пустые, то зачем создавать пустые строки? :smile:
вот сам заполни те пустые значения и увидишь
значения у тебя начинаются со знака "/"
 
Автор
O

Olim98

Новичок
Сообщения
48
Репутация
2
joiner
Вот именно что я не знаю будут ли они с этого знака начинаться или не будут :(
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
тогда убери этот знак получишь другой массив
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Код:
#include <string.au3>
$fo = FileRead('1.txt')
$strb1 = _StringBetween($fo, 'name="__', '" />')
For $i = 0 To UBound($strb1) - 1
	$strbt2 = _StringBetween($strb1[$i],'','" id="')
	$strbt3 = _StringBetween($strb1[$i], '" value="', '')
	ConsoleWrite($strbt2[0] & ' - ' & $strbt3[0] & @CR)
Next
 
Автор
O

Olim98

Новичок
Сообщения
48
Репутация
2
joiner
Спасибо большое! Все работает, правда name приходит без __, но это исправить не сложно.
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Olim98
А какой версии у вас Internet Explorer?
 
Верх