Что нового

Получение, формирование и запись данных с веб страницы

uritalex

Новичок
Сообщения
197
Репутация
3
Приветствую Вас о гуру кода !
В процессе написания одного скрипта столкнулся с такой задачей: из блока кода страницы нужно выбрать несколько параметров и записать в файл. Вот код блока страницы:
Код:
<div class="message chat-message " data-id="2140496">
   <a href="/profile/id/155948" class="ava"> <img src="/assets/i/dummy_female.png" alt="lilian567"></a> 
    <div class="pad message-pad" data-author="lilian567">
    <div class="row">
	<a href="#" class="name chat-user-name" data-author="lilian567">lilian567</a>
	<a href="/profile/id/160819" class="to partner">Александра1688</a>
    <div class="l-rgt">
    	<span class="time">23:23</span>
     </div>
     <div class="txt">
				  долг
      </div>
      </div>
      </div>
      </div>
Необходимо сформировать список со следующих параметров:
data-id="2140496" + href="/profile/id/155948" + lilian567 + href="/profile/id/160819" + Александра1688 + долг + 23:23
Как бы по отдельности можно взять все параметры (хоть на что то мозгов хватает) но дело в том что на сайте таких блоков может быть очень много :(
Из того что пока сам сделал только это:

Код:
#include <GUIConstants.au3>
#include <IE.au3>
#include <Array.au3>
#include <Date.au3>
#include <File.au3>

         While 1
		$oIE = _IECreate('ххх', 0, 1)
		Sleep(2000)
		If _IEPropertyGet($oIE, 'title') == "ХХХ" Then
			ExitLoop
		ElseIf _IEPropertyGet($oIE, 'title') <> "ХХХ" Then
			_IEQuit($oIE)
			Sleep(10000)
		EndIf
	 WEnd
	$hnd = _IEPropertyGet($oIE, "hwnd")
	ConsoleWrite($hnd & "+Запуск+" & _NowTime(4) & @CRLF)

	$oElems = _IETagNameGetCollection($oIE, "div")
	For $oEl In $oElems
		If $oEl.className = "message chat-message " Then
			$Data_id = $oEl.getAttribute('data-id')
			ConsoleWrite($Data_id & @CRLF)
			
		EndIf
        Next

Как привязать все остальные параметры к первому и производить выборку данных только из блока с data-id="2140496" затем из следующего блока и так далее
Помогите пожалуйста.
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Каждое сообщение в своем Div?
<div class="message chat-message " data-id="2140496">..</div>
<div class="message chat-message " data-id="2140497">..</div>
<div class="message chat-message " data-id="2140498">..</div>
Как то так?


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

Так
Код:
Local $messages = $oIe.document.getElementsByClassName('chat-message')
If Not IsObj($messages) Then Exit -1

For $message In $messages
	$data_id = $message.getAttribute('data-id')
	$user_1_profile = $message.getElementsByClassName('ava').item(0).href
	$user_1_username = $message.getElementsByClassName('chat-user-name').item(0).innerText

	$user_2 = $message.getElementsByClassName('to partner').item(0)
	$user_2_profile = $user_2.href
	$user_2_username = $user_2.innerText

	$text = StringStripWS($message.getElementsByClassName('txt').item(0).innerText, 3)
	$time = $message.getElementsByClassName('time').item(0).innerText

	$out = 'data-id="' & $data_id & '" + ' & _
		'href="' & $user_1_profile & '" + ' & _
		$user_1_username & ' + ' & _
		'href="' & $user_2_profile & '" + ' & _
		$user_2_username & ' + ' & _
		$text & ' + ' & _
		$time

	ConsoleWrite($out & @CRLF)
Next



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

В консоле:
Код:
data-id="2140496" + href="file:///D:/profile/id/155948" + lilian567 + href="file:///D:/profile/id/160819" + Александра1688 + долг + 23:23
data-id="2140497" + href="file:///D:/profile/id/160819" + Александра1688 + href="file:///D:/profile/id/155948" + lilian567 + а фиг вам + 23:25
 
Автор
U

uritalex

Новичок
Сообщения
197
Репутация
3
:shok: спасибо Вам огроменное !!! Да Вы правильно поняли :beer:
 
Верх