- Сообщения
- 8,673
- Репутация
- 2,484
- Версия AutoIt
- 3.2.12.0
- Версия
- 0.2
Категория: Строки, Данные, Интернет
Описание: Библиотека обработки XPath запросов для Html, основана на использовании HtmlFile объекта.
Требования: Win 7, IE 8+
Примеры:
История версий:
Описание: Библиотека обработки XPath запросов для Html, основана на использовании HtmlFile объекта.
Требования: Win 7, IE 8+
Примеры:
Простой пример:
Продвинутый пример:
Код:
#include <Array.au3>
#include <HtmlXPath.au3>
$sHTML = _
'<html>' & @CRLF & _
' <body>' & @CRLF & _
' <span id="users" class="users">' & @CRLF & _
' <div id="user">User1</div>' & @CRLF & _
' <div id="user" class="user">User2</div>' & @CRLF & _
' <div id="user" class="user">User3</div>' & @CRLF & _
' </span>' & @CRLF & _
' <span id="logins" class="logins">' & @CRLF & _
' <div id="login">login1</div>' & @CRLF & _
' <div id="login">login2</div>' & @CRLF & _
' <div id="login">login3</div>' & @CRLF & _
' </span>' & @CRLF & _
' </body>' & @CRLF & _
'</html>' & @CRLF
MsgBox(64, 'Html', $sHTML, 3)
Dim $aXPaths[2] = _
[ _
'html/body/span/div[(@id="user" and @class="user")]', _ ;User2, User3
'/*/body/span[@id=logins]/div[@id=login][1]' _ ;login2
]
For $i = 0 To 1
$oNode = _HtmlXPath_Select($sHTML, $aXPaths[$i])
$iExtended = @extended
$iError = @error
$sNodeName = _HtmlXPath_ParseSelected($oNode, 0, 'NodeName')
Switch $iError
Case 0
$aResult = _HtmlXPath_ParseSelected($oNode, -1, 'InnerText')
_ArrayDisplay($aResult, $aXPaths[$i])
$aAttribs = _HtmlXPath_GetNodeAttributes($oNode, 0)
_ArrayDisplay($aAttribs, $sNodeName & ' Attributes')
Case 1
MsgBox(48, 'Error', 'Unable to initialize HTMLFILE object')
Case 2
MsgBox(48, 'Error', 'Unable to load Html data')
Case 3
MsgBox(48, 'Error - ' & $aXPaths[$i], _
'XPath result does not matches XPath query' & @CRLF & _
'Count: ' & $iExtended & @CRLF & _
'NodeName: ' & $sNodeName)
EndSwitch
Next
Продвинутый пример:
Код:
#include <Array.au3>
#include <HtmlXPath.au3>
_HtmlXPath_SetDebug(True, False)
$sHTML = _HtmlXPath_InetRead('http://autoitscript.com')
$sXPath = 'div[@id="featured-area"]/div[@class="container clearfix"]/div[@id="featured-slider"]/div[@class="featitem clearfix"][0]/div[@class="excerpt"]/p[0]'
$oNode = _HtmlXPath_Select($sHTML, $sXPath)
$iExtended = @extended
Switch @error
Case 0
$sResult = _HtmlXPath_ParseSelected($oNode, 0, 'InnerText')
MsgBox(64, 'Result', $sResult)
Case 1
MsgBox(48, 'Error', 'Unable to initialize HTMLFILE object')
Case 2
MsgBox(48, 'Error', 'Unable to load Html data')
Case 3
$sResult = _HtmlXPath_ParseSelected($oNode, 0, 'NodeName')
MsgBox(48, 'Error', _
'XPath result does not matches XPath query' & @CRLF & _
'Count: ' & $iExtended & @CRLF & _
'NodeName: ' & $sResult)
EndSwitch
_HtmlXPath_Release()
_HtmlXPath_SetDebug(False, True)
$sHTML = _HtmlXPath_InetRead('http://devid.info/en/search?text=dell', 'AutoIt/3', 'http://devid.info')
$sXPath = 'div[@id="os-list-6.1"]/div[@class="item-box"]'
$aResult = _HtmlXPath_Select($sHTML, $sXPath, True, -1, 'InnerText')
_ArrayDisplay($aResult)
История версий:
v0.2
* Изменён метод возврата в функции _HtmlXPath_ParseSelected когда $iItem > -1 (см. описание функции).
+ Добавлена функция _HtmlXPath_SetHtml для указания определённого содержимого Html.
+ В функцию _HtmlXPath_Select добавлен параметр $fParse для обработки результата с помощью _HtmlXPath_ParseSelected.
К этому параметру также относятся последующие параметры $iParseItem и $sParseOutput.
* Исправлена проблема с отсутствием заголовка Html (тег head). Теперь по умолчанию скрипты отключаются из исходного кода Html для предотвращения проблем с зависанием объекта.
* Исправлены некоторые проблемы с функцией _HtmlXPath_InetRead.
v0.1
* Первая публичная версия.
* Изменён метод возврата в функции _HtmlXPath_ParseSelected когда $iItem > -1 (см. описание функции).
+ Добавлена функция _HtmlXPath_SetHtml для указания определённого содержимого Html.
+ В функцию _HtmlXPath_Select добавлен параметр $fParse для обработки результата с помощью _HtmlXPath_ParseSelected.
К этому параметру также относятся последующие параметры $iParseItem и $sParseOutput.
* Исправлена проблема с отсутствием заголовка Html (тег head). Теперь по умолчанию скрипты отключаются из исходного кода Html для предотвращения проблем с зависанием объекта.
* Исправлены некоторые проблемы с функцией _HtmlXPath_InetRead.
v0.1
* Первая публичная версия.
- Автор
- G.Sandler (CreatoR)
- Источник
- Ссылка на источник
Вложения
Последнее редактирование: