Что нового

Ссылки в _IELinkGetCollection

Mr. Anderson

Новичок
Сообщения
122
Репутация
4
Код:
$aLinks = StringRegExp(ContentPage(), '(?s)(?i)<a.+?>.*?</a>', 3)
$oLinks = _IELinkGetCollection($oIE)
$oN = @extended
$aN = UBound($aLinks)
	
ConsoleWrite($aN&' - число ссылок посчитанное StringRegExp. '&$oN&' - число ссылок посчитанное _IELinkGetCollection')

Выдаёт на страницу вот такое
Код:
71 - число ссылок посчитанное StringRegExp. 61 - число ссылок посчитанное _IELinkGetCollection

Что же получается? Не всё то ссылка что в теге <a></а>??

Интересно узнать какие ссылки не учитывает _IELinkGetCollection! По справке:
Код:
$oLinks = _IELinkGetCollection ($oIE)
$iNumLinks = @extended
MsgBox(0, "Link Info", $iNumLinks & " links found")
For $oLink In $oLinks
    MsgBox(0, "Link Info", $oLink.href)
Next


Но к сожалению ссылка не только href"ом определяется, как посмотреть другие свойства ссылки? А лучше весь текст от <a до /a>, что бы правильно составить регулярку.

---

Чудеса да и только, изменил регулярку на это:
Код:
$aLinks = StringRegExp(ContentPage(), '(?s)<A.+?>.*?</A>', 3)

Как тут же всё стало совпадать. Неужели _IELinkGetCollection не учитывает ссылки с маленькими <a></а>? Но почему?
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Код страницы links.html:
Код:
<html>
<head></head>
	<body>
		<A href="">1</A>
		<a href="">2</a>
		<A href="">3</A>
		<A href="">4</A>
		<a href="">5</a>
		<A href="">6</A>
		<A href="">7</A>
		<a href="">8</a>
		<A href="">9</A>
		<A href="">10</A>
	</body>
</html>

Ваш код:
Код:
#include <IE.au3>
$oIE = _IECreate(@ScriptDir & '\links.html')
$aLinks = StringRegExp(ContentPage(), '(?s)(?i)<a.+?>.*?</a>', 3)
$oLinks = _IELinkGetCollection($oIE)
$oN = @extended
$aN = UBound($aLinks)
   
ConsoleWrite($aN&' - число ссылок посчитанное StringRegExp. '&$oN&' - число ссылок посчитанное _IELinkGetCollection')

Func ContentPage()
	$oHTML = _IEBodyReadHTML($oIE)
	Return $oHTML
EndFunc


Результат:
10 - число ссылок посчитанное StringRegExp. 10 - число ссылок посчитанное _IELinkGetCollection
 
Автор
M

Mr. Anderson

Новичок
Сообщения
122
Репутация
4
Хм, может тогда на странице что то с фреймами было... недочет в 10 ссылок все ж.. Буду дальше думать
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Mr. Anderson [?]
Хм, может тогда на странице что то с фреймами было... недочет в 10 ссылок все ж.. Буду дальше думать
IMHO StringRegExp в первом случае захватывает что-то ещё попадающие под условие маски.
 
Верх