Что нового

[Сеть, интернет] Получить вопрос из кода страницы и ответить на него.

Math

Новичок
Сообщения
85
Репутация
1
Есть сайт, на котором при определённом действии нужно ввести ответ на вопрос.
Как правило, этот вопрос - простой математический пример.

Нужно, что бы скрипт получал этот пример и считал ответ на него. При этом, что бы потом этот ответ можно было ввести в поле.
Как это реализовать? Для браузера Opera.

Вот код этого вопроса со страницы:
<fieldset class="fieldset">
<legend>Random Question</legend>
<table cellpadding="0" cellspacing="3" border="0" width="100%">
<tr>
<td width="100%" valign="top">
<div><strong><label for="humanverify">5 + 1 = ?</label></strong></div>
<input type="text" class="bginput" name="humanverify[input]" id="humanverify" size="50" />
<input id="hash" type="hidden" name="humanverify[hash]" value="0c4a0b87cf1bd2196cb2c07235bb448d" />
</td>
</tr>
</table>
</fieldset>
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Math [?]
Как это реализовать? Для браузера Opera.
ИМХО, для Opera никак, с IE можно. Пример с Вашим HTML-кодом.
Код:
#include <IE.au3>

$oIE = _IECreate(@ScriptDir & '\test.html')
If @error Then
	MsgBox(16, 'Error', '_IECreate')
	Exit
EndIf
For $i = 1 To 1
	$oLabels = _IETagNameGetCollection($oIE, 'label')
	If @error Then ExitLoop
	For $oLabel In $oLabels
		If StringRegExp($oLabel.innertext, '[\d=]') Then
			$iQuestion = StringRegExpReplace($oLabel.innertext, '=.*$', '')
			;если знак разделить не '/' или умножить не *, то надо еще
			;$iQuestion = StringReplace($iQuestion, 'знак разделить', '/')
			;$iQuestion = StringReplace($iQuestion, 'знак умножить', '*')
			$iQuestion = Execute($iQuestion)
			If Not IsNumber($iQuestion) Then ExitLoop 2
		EndIf
	Next
	$oInput = _IEGetObjById($oIE, 'humanverify')
	If @error Then ExitLoop
	_IEFormElementSetValue($oInput, $iQuestion)
Next
If @error Then
	MsgBox(16, 'Error', 'Error')
Else
	MsgBox(64, 'Info', 'OK')
EndIf
 
Автор
M

Math

Новичок
Сообщения
85
Репутация
1
madmasles,
Так и сделаю, если не получится с оперой.

Но всё же хотелось бы найти аналогичное решение для оперы.
 
Верх