Что нового

Поиск в html коде

systel

Новичок
Сообщения
26
Репутация
1
Имеется html код от игры:

Код:
... data-timer-hide="1"></a> ...

Если в игре были совершены какие-то действия, то добавляется текст с временем и код принимает такой вид:
Время динамическое и ведется отсчет.

Код:
... data-timer-hide="1">1:00</a> ...

Вот собственно и проблема, как правильно сделать поиск.
Т.е. мне нужно чтобы совершались действия когда первый вариант кода. (Пусть будет вывод MSGBOX)
А когда идет отсчет времени, т.е. 2й вариант (1:00, или 0:16, или 5:34, время может быть любое, но макс: 9:59) , то он просто ждал.
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Код:
$t='data-timer-hide="1"></a>'
If StringRegExp($t,'data-timer-hide="1">.+?</a>')=0 Then MsgBox(0,'','значения нет, 1 вариант')
 
Автор
S

systel

Новичок
Сообщения
26
Репутация
1
Хмм.. почему-то даже если со временем, все равно не находит.
 
Автор
S

systel

Новичок
Сообщения
26
Репутация
1
Код:
<span class="world "><a href="/10000001/world"><i></i>
<u>Мир</u></a>								<a href="/10000001/world/" id="world-cooldown" timer="109" data-timer-hide="1">01:49</a><menu src="/i/images/obj/hq/attack.png" title="Перерыв">Вам нужно отдохнуть после отправки армии. Или выпейте <b>озверина</b>, чтобы атаковать чаще.</menu>
							</span>

Конечно могу абсолютно весь скинуть, но там больше нету таких значений чтоб он мог находить их.

Может просто искать только такой текст:
Код:
data-timer-hide="1"></a>
???
Но чет мне кажется что при таком раскладе он некоторые символы принимает как какие-нить флаги или тип того.
 

Asshaker

Знающий
Сообщения
150
Репутация
17
Тут есть все
http://autoit-script.ru/index.php/topic,6651.0.html
 

ggzgamer

Осваивающий
Сообщения
134
Репутация
23
Лучше, думаю, попробовать через объекты.

Код:
#include <IE.au3>
$sUrl='' ; подстрока адреса
$oIE=_IEAttach($sUrl, 'url')

$oColdown=_IEGetObjById($oIE, 'world-cooldown')
If Not @error Then
	$sText=_IEPropertyGet($oColdown, 'innertext')
	If Not @error Then
		MsgBox(0, 'Coldown', $sText)
	EndIf
EndIf

$oLinks=_IETagNameGetCollection($oIE, 'a')
If Not @error Then
	For $oLink In $oLinks
		$sPropLink=_IEPropertyGet($oLink, 'outerhtml')
		If Not @error Then
			If StringInStr($sPropLink, 'world') And StringInStr($sPropLink, 'timer') And StringInStr($sPropLink, 'data') Then
				$sText=_IEPropertyGet($oLink, 'innertext')
				If Not @error Then
					MsgBox(0, 'Coldown', $sText)
					ExitLoop
				EndIf
			EndIf
		EndIf
	Next
EndIf
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Код:
$t='data-timer-hide="1"></a>'
If StringRegExp($t,'(?si)data-timer-hide="1">.+?</a>')=0 Then MsgBox(0,'','значения нет, 1 вариант')
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
systel,
Можно и так попробовать.
Код:
$sText = '<span class="world "><a href="/10000001/world"><i></i>
<u>Мир</u></a>				 < a href = "/10000001/world/" id = "world-cooldown" timer = "109" data - timer - hide = "1" > 01:49 < /a > <menu src = "/i/images/obj/hq/attack.png" title = "Перерыв" > Вам нужно отдохнуть после отправки армии. Или выпейте < b > озверина < /b >, чтобы атаковать чаще. < /menu >' & @CRLF & _
		'							</span>'

$sText_1 = '<span class="world "><a href="/10000001/world"><i></i>
<u>Мир</u></a>				 < a href = "/10000001/world/" id = "world-cooldown" timer = "109" data - timer - hide = "1" >< /a > <menu src = "/i/images/obj/hq/attack.png" title = "Перерыв" > Вам нужно отдохнуть после отправки армии. Или выпейте < b > озверина < /b >, чтобы атаковать чаще. < /menu >' & @CRLF & _
		'							</span>'
$sSearch = StringRegExpReplace($sText, '(?is).*timer - hide = "1" >\s?(.*?)\s?<.*', '$1')
ConsoleWrite($sSearch & @LF)
If $sSearch Then
	ConsoleWrite('Yes' & @LF)
Else
	ConsoleWrite('No' & @LF)
EndIf
$sSearch_1 = StringRegExpReplace($sText_1, '(?is).*timer - hide = "1" >\s?(.*?)\s?<.*', '$1')
ConsoleWrite($sSearch_1 & @LF);пусто
If $sSearch_1 Then
	ConsoleWrite('Yes_1' & @LF)
Else
	ConsoleWrite('No_1' & @LF)
EndIf
;или
ConsoleWrite('===' & @LF)
ConsoleWrite(StringRegExp($sText, 'timer - hide = "1" >\s?(\d.*?)\s?<') & @LF)
ConsoleWrite(StringRegExp($sText_1, 'timer - hide = "1" >\s?(\d.*?)\s?<') & @LF)
 
Верх