Что нового

[Сеть, интернет] Получение, поиск, сортировка данных html страницы и нажатие на JS кнопку

Djmarka

Новичок
Сообщения
1
Репутация
0
  • Необходимо в полученной странице найти блок с классом "g960"
Код:
<div class="g960">
  • Далее в этом блоке найти инструкции допустим "A,B,C и D" (инструкции заключены в тег span, ниже приведен пример инструкции "A", который находится на 13 строчке в полном блок в конце темы)
Код:
<span class="project_name">A</span>
  • Потом нажать на кнопку JS с текстом "Посмотреть"
Код:
<div class="w150 left">
<a class="button projectDetails" href="javascript:" data-href="http:..." data-id="50189">Посмотреть</a>
</div>
  • и далее, исходя из полученной инструкции "A,B,C,D", перед кнопкой посмотреть, выполнить вызов функции по завершению которой перейти к следующему блоку с инструкциеей
    Код:
    call ("func_A");("func_B")("func_C") или ("func_D") в зависимости от инструкции
    .

блок из html страницы который нужно найти по классу и отсортировать в нем данные:

Код:
<div class="g960">

<div id="menuContent">

	<a class="metroMenuSmall color1 w150 left" href="javascript:getTaskList();">1</a>
	<a class="metroMenuSmall color2 w150 left" href="javascript:withdrawForm()">2</a>
	<a class="metroMenuSmall color3 w150 left" href="javascript:getFeedback()">3</a>
	<a class="metroMenuSmall color4 w100 left" href="javascript:getRules()">4</a>
	
	<div class="clear"></div>
			</div>
								
			<div class="project_line line project63699">
				<div class="w50 left align-center">
					63699				</div>
				<div class="w300 left">
					<span class="project_name">A</span>
				</div>
				<div class="w150 left">
					0.05 				</div>
				<div class="w150 left">
					<a class="button projectDetails" href="javascript:" data-href="http://..." data-id="63699">Посмотреть</a>
				</div>
				<div class="w150 right align-center">
					<a class="tipsy_class bother_project" href="javascript:" original-title="Пожаловаться" data-id="63699"></a>
					<a class="tipsy_class delete_project" href="javascript:" original-title="Больше не показывать" data-id="63699"></a>
				</div>
				<div class="clear"></div><!-- /clear -->
			</div>
								
								
			<div class="project_line line project4987">
				<div class="w50 left align-center">
					4987				</div>
				<div class="w300 left">
					<span class="project_name">B</span>
				</div>
				<div class="w150 left">
					0.165 				</div>
				<div class="w150 left">
					<a class="button projectDetails" href="javascript:" data-href="http://..." data-id="4987">Посмотреть</a>
				</div>
				<div class="w150 right align-center">
					<a class="tipsy_class bother_project" href="javascript:" original-title="Пожаловаться" data-id="4987"></a>
					<a class="tipsy_class delete_project" href="javascript:" original-title="Больше не показывать" data-id="4987"></a>
				</div>
				<div class="clear"></div><!-- /clear -->
			</div>
								
			<div class="project_line line project63695">
				<div class="w50 left align-center">
					63695				</div>
				<div class="w300 left">
					<span class="project_name">C</span>
				</div>
				<div class="w150 left">
					0.057 				</div>
				<div class="w150 left">
					<a class="button projectDetails" href="javascript:" data-href="http://..." data-id="63695">Посмотреть задание</a>
				</div>

			<div class="project_line line project63615">
				<div class="w50 left align-center">
					63615				</div>
				<div class="w300 left">
					<span class="project_name">D</span>
				</div>
				<div class="w150 left">
					0.03 				</div>
				<div class="w150 left">
					<a class="button projectDetails" href="javascript:" data-href="http://..." data-id="63615">Посмотреть</a>
				</div>
				<div class="w150 right align-center">
					<a class="tipsy_class bother_project" href="javascript:" original-title="Пожаловаться" data-id="63615"></a>
					<a class="tipsy_class delete_project" href="javascript:" original-title="Больше не показывать" data-id="63615"></a>
				</div>
				<div class="clear"></div>
			</div>

		
					<div class="clear"></div><!-- clear --->
	
	
</div> <!--subContent -->

</div>

Пытался найти гайды по работе с IE библиотекой, но везде все на немецком и других языках...
Поможете с осуществлением? :smile:


PS: Первый мой вопрос на этом форуме, раньше в архивах вопросов находил ответы, а сейчас... сами видите :(
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Djmarka,
Попробуйте сделать примерно так.
Код:
#include <IE.au3>

Opt('MustDeclareVars', 1)

Local $sUrl = @ScriptDir & '\1.html', $i_Err = 1, $oIE, $oDivs, $oDiv, $oSpan, $s_TxtSpan, $oBtns

Do
	$oIE = _IECreate($sUrl)
	If @error Then ExitLoop
	$oDivs = _IETagNameGetCollection($oIE, 'div')
	If @error Then ExitLoop
	For $oTmp In $oDivs
		If $oTmp.ClassName == 'g960' Then
			$oDiv = $oTmp
			ExitLoop
		EndIf
	Next
	If Not IsObj($oDiv) Then ExitLoop
	$oDivs = _IETagNameGetCollection($oDiv, 'div')
	If @error Then ExitLoop
	For $oTmp In $oDivs
		If StringInStr($oTmp.ClassName, 'project_line line project') Then
			$oSpan = _IETagNameGetCollection($oTmp, 'span', 0)
			If @error Then ExitLoop 2
			$s_TxtSpan = _IEPropertyGet($oSpan, 'innertext')
			If @error Then ExitLoop 2
			MsgBox(64, 'Info', 'Span text: ' & $s_TxtSpan)
			$oBtns = _IETagNameGetCollection($oTmp, 'a')
			If @error Then ExitLoop 2
			For $oBtn In $oBtns
				If $oBtn.ClassName == 'button projectDetails' Then
					_IEAction($oBtn, 'click')
					If @error Then ExitLoop 3
					MsgBox(64, 'Info', 'Click Button ' & _IEPropertyGet($oBtn, 'innertext'))
					ExitLoop
				EndIf
			Next
			MsgBox(64, 'Info', 'Call _MyFunc_' & $s_TxtSpan)
			$s_TxtSpan = ''
		EndIf
	Next
	$i_Err = 0
Until 1
If $i_Err Then
	MsgBox(16, 'Error', 'Error')
Else
	MsgBox(64, 'Info', 'OK')
EndIf
В файле 1.html HTML-код из Вашего последнего блока:
Код:
<html>
<head>
<title>Test</title>
</head>
   <body>
<div class="g960">

<div id="menuContent">

	<a class="metroMenuSmall color1 w150 left" href="javascript:getTaskList();">1</a>
	<a class="metroMenuSmall color2 w150 left" href="javascript:withdrawForm()">2</a>
	<a class="metroMenuSmall color3 w150 left" href="javascript:getFeedback()">3</a>
	<a class="metroMenuSmall color4 w100 left" href="javascript:getRules()">4</a>
	
	<div class="clear"></div>
			</div>
								
			<div class="project_line line project63699">
				<div class="w50 left align-center">
					63699				</div>
				<div class="w300 left">
					<span class="project_name">A</span>
				</div>
				<div class="w150 left">
					0.05 				</div>
				<div class="w150 left">
					<a class="button projectDetails" href="javascript:" data-href="http://..." data-id="63699">Посмотреть</a>
				</div>
				<div class="w150 right align-center">
					<a class="tipsy_class bother_project" href="javascript:" original-title="Пожаловаться" data-id="63699"></a>
					<a class="tipsy_class delete_project" href="javascript:" original-title="Больше не показывать" data-id="63699"></a>
				</div>
				<div class="clear"></div><!-- /clear -->
			</div>
								
								
			<div class="project_line line project4987">
				<div class="w50 left align-center">
					4987				</div>
				<div class="w300 left">
					<span class="project_name">B</span>
				</div>
				<div class="w150 left">
					0.165 				</div>
				<div class="w150 left">
					<a class="button projectDetails" href="javascript:" data-href="http://..." data-id="4987">Посмотреть</a>
				</div>
				<div class="w150 right align-center">
					<a class="tipsy_class bother_project" href="javascript:" original-title="Пожаловаться" data-id="4987"></a>
					<a class="tipsy_class delete_project" href="javascript:" original-title="Больше не показывать" data-id="4987"></a>
				</div>
				<div class="clear"></div><!-- /clear -->
			</div>
								
			<div class="project_line line project63695">
				<div class="w50 left align-center">
					63695				</div>
				<div class="w300 left">
					<span class="project_name">C</span>
				</div>
				<div class="w150 left">
					0.057 				</div>
				<div class="w150 left">
					<a class="button projectDetails" href="javascript:" data-href="http://..." data-id="63695">Посмотреть задание</a>
				</div>

			<div class="project_line line project63615">
				<div class="w50 left align-center">
					63615				</div>
				<div class="w300 left">
					<span class="project_name">D</span>
				</div>
				<div class="w150 left">
					0.03 				</div>
				<div class="w150 left">
					<a class="button projectDetails" href="javascript:" data-href="http://..." data-id="63615">Посмотреть</a>
				</div>
				<div class="w150 right align-center">
					<a class="tipsy_class bother_project" href="javascript:" original-title="Пожаловаться" data-id="63615"></a>
					<a class="tipsy_class delete_project" href="javascript:" original-title="Больше не показывать" data-id="63615"></a>
				</div>
				<div class="clear"></div>
			</div>

		
					<div class="clear"></div><!-- clear --->
	
	
</div> <!--subContent -->

</div>
    </body>
</html>


Добавлено:
Сообщение автоматически объединено:

Djmarka [?]
Пытался найти гайды по работе с IE библиотекой, но везде все на немецком и других языках
Развитие русской справки
 
Верх