Что нового

Парсер html файла

Vadimmm0072

Новичок
Сообщения
36
Репутация
2
Версия AutoIt:v3.2.5.4 3.

Описание:
В html файле имеется вот такой вот тег
Код:
<a class="item-img ajax" style="background:url('http://cs0.imgmo.ru//upl/photos/7000/u6965/14162/220/24711_57453263.jpg')" href="/id6965?from=top"></a>
И таких на сайте очень много. И мне нужно достать id каждого(в данном коде это число 6965). Можно ли написать такой парсер? Заранее спасибо!
 

ggzgamer

Осваивающий
Сообщения
134
Репутация
23
А адресс страницы не секретный какой-нибудь, а то проверить регулярное выражение может не правильным быть :smile:

Код:
#include <IE.au3>
$sUrl='google.ru'
$oIE=_IECreate($sUrl)
$oLinks=_IETagNameGetCollection($oIE, 'a')
If Not @error Then
	For $oLink In $oLinks
		$sPropLink=_IEPropertyGet($oLink, 'outerhtml')
		If Not @error Then
			$aID=StringRegExp($sPropLink, '(?si)href="/id(\d+)\D', 3)
			If Not @error Then
				FileWriteLine('Log.txt', $aID[0])
			EndIf
		EndIf
	Next
EndIf
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Код:
$vTest = '<a class="item-img ajax" style="background:url(''http://cs0.imgmo.ru//upl/photos/7000/u6965/14162/220/24711_57453263.jpg'')" href="/id6965?from=top"></a>'

$sRet = StringRegExpReplace($vTest, '(?i).*/id(.*?)\?from=top.*', '\1')
ConsoleWrite("Result: " & $sRet & @LF)



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

И это есть в теме http://autoit-script.ru/index.php/topic,4052.0.html (см. Извлечение текста находящегося между двумя подстроками/тегами).
 
Автор
V

Vadimmm0072

Новичок
Сообщения
36
Репутация
2
Всем спасибо кто помог! :IL_AutoIt_1: Единственное только объясните вот эту вот сточку
Код:
$aID=StringRegExp($sPropLink, '(?si)href="/id(\d+)\D', 3)
особенно то что в скобках.
 

ggzgamer

Осваивающий
Сообщения
134
Репутация
23
(?si) - вопрос это включение специальных вохможностей шаблона таких как s - позволяет для метасимвола "." воспринимать переходы строк, i - отключает чувствительность регистра.
(\d+) группа цифр, знак + означает максимально возможное повторение цифр, до первого симола не цифры \D

http://autoit-script.ru/index.php/topic,4901.0.html
 
Верх