Что нового

Получение свойств элемента web страницы

vovsla

Осваивающий
Сообщения
607
Репутация
36
Как можно получать значения в в тегах h1, Span, Title ?
httр://catalog.drom.ru/kia/carens/g_2006_1434/

Например текст заголовка в данном случае
Код:
<title>Kia Carens (05.2006 - 08.2012) - технические характеристики и комплектации</title>
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Vovsla сказал(а):
Как можно получать значения в в тегах <h1>, <Span>, <Title> ?
Как обычно :smile:

Например текст заголовка в данном случае
Код:
#include <IE.au3>
$oIE = _IECreate("http://catalog.drom.ru/kia/carens/g_2006_1434/")

$sDocTitle = _IEPropertyGet($oIE, "title")

MsgBox(0, "title", $sDocTitle)
 
Автор
V

vovsla

Осваивающий
Сообщения
607
Репутация
36
Точно, проглядел опцию title.
А как с этой страницы получить Тип кузова, Мощность?
httр://cartechnic.ru/asia/asia_rocsta__18_5mt_3dr_combi
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Vovsla [?]
А как с этой страницы получить Тип кузова, Мощность?
Код:
#include<IE.au3>

Local $sURL = 'http://cartechnic.ru/asia/asia_rocsta__18_5mt_3dr_combi', $i = 0

$oIE = _IECreate($sURL)
$oItems = _IETagNameGetCollection($oIE, 'h5')
Local $aInfo[@extended][2]

For $oItem In $oItems
   $aInfo[$i][0] = _IEPropertyGet($oItem, 'innerText')
   For $oChild In $oItem.nextElementSibling.children
	  $iCount = $oChild.children.length
	  Local $aTmp[$iCount/2][2]
	  For $j = 0 To $iCount -1 Step 2
		 If $j = 0 Then
			$aTmp[$j][0] = $oChild.children($j).innerText
			$aTmp[$j][1] = $oChild.children($j+1).innerText
		 Else
			$aTmp[$j/2][0] = $oChild.children($j).innerText
			$aTmp[$j/2][1] = $oChild.children($j+1).innerText
		 EndIf
	  Next
	  $aInfo[$i][1] = $aTmp
   Next
   $i += 1
Next

For $i = 0 To UBound($aInfo) -1

   If $aInfo[$i][0] == 'Кузов' Then
	  ConsoleWrite(StringFormat('> %s\n', $aInfo[$i][0]))
	  For $j = 0 To UBound($aInfo[$i][1]) -1
		 ConsoleWrite(StringFormat('\t%s -> %s\n',($aInfo[$i][1])[$j][0],($aInfo[$i][1])[$j][1]))
	  Next
   EndIf
Next

_IEQuit($oIE)
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Vovsla
получить Тип кузова, Мощность
Вариант для IE с использованием UIAutomate
Код:
#include "UIAutomate.au3"
#include <Array.au3>
#include <IE.au3>

$oIE = _IECreate("http://cartechnic.ru/asia/asia_rocsta__18_5mt_3dr_combi")
MsgBox(0, "Info", GetInfo("Тип кузова"))
MsgBox(0, "Info", GetInfo("Мощность"))
_ArrayDisplay(GetFullInfo("Кузов"))
_ArrayDisplay(GetFullInfo("Трансмиссия"))
_ArrayDisplay(GetFullInfo("Эксплуатационные показатели"))
_IEQuit($oIE)

Func GetInfo($About)
  Local $oParent = _UIA_GetElementFromHandle(ControlGetHandle("[class:IEFrame]", "", "Internet Explorer_Server1"))
  Local $oStart = _UIA_GetControlTypeElement($oParent, "UIA_ListItemControlTypeId", $About)
  Local $aPN = _UIA_ElementGetPreviousNext($oStart)
  If @error Or Not IsObj($aPN[1]) Then
    Return $About & " : не найдено"
  Else
    Return $About & " : " & _UIA_ElementGetPropertyValue($aPN[1], "Name")
  EndIf
EndFunc

Func GetFullInfo($About)
  Local $oParent = _UIA_GetElementFromHandle(ControlGetHandle("[class:IEFrame]", "", "Internet Explorer_Server1"))
  Local $oStart = _UIA_GetControlTypeElement($oParent, "UIA_TextControlTypeId", $About)
  Local $aPN = _UIA_ElementGetPreviousNext($oStart)
  If @error Or Not IsObj($aPN[1]) Then Return
  Local $aItems = _UIA_FindAllElements($aPN[1], "ControlType", $UIA_ListItemControlTypeId)
  If @error Then Return
  Local $aInfo[$aItems[0] / 2][2], $j = 0
  For $i = 1 To $aItems[0] Step 2
    $aInfo[$j][0] = _UIA_ElementGetPropertyValue($aItems[$i], "Name")
    $aInfo[$j][1] = _UIA_ElementGetPropertyValue($aItems[$i + 1], "Name")
    $j += 1
  Next
  Return $aInfo
EndFunc
 
Автор
V

vovsla

Осваивающий
Сообщения
607
Репутация
36
Всем большое спасибо за помощь.
 
Верх