mail mail
Нужен макрос для Excel?
Сделайте заказ прямо сейчас!
Ищете готовое решение?
Выбирайте и покупайте!
У вас есть интернет-магазин?
Настроим парсер под любой сайт!
Статья является инструкцией по надстройке Parser

Действие парсера «HTML: Замена / изменение тегов»

Действие "HTML: Замена / изменение тегов" (далее - Действие) предназначено для поиска тегов по заданным параметрам и выполнения в них замен по предложенным шаблонам, либо для дописывания шаблона до/после тега или его содержимого.

Действие имеет 3 параметра:

  1. Искомые теги
  2. Тип замены
  3. Шаблон замены
Действие Параметр Значение
HTML: Замена / изменение тегов Искомые теги a
Тип замены ReplaceInnerHTML
Шаблон замены Парсинг сайтов
Исходное значение   Результат
<a class="First" href="http://excelvba.ru/updates/download.php?addin=Parser"><b>Parser.xla</b></a>
<a class="Second" href="http://excelvba.ru/AnotherPage.html"><i>Another text</i></a>
 
<a class="First" href="http://excelvba.ru/updates/download.php?addin=Parser">Парсинг сайтов</a>
<a class="Second" href="http://excelvba.ru/AnotherPage.html">Парсинг сайтов</a>

В данном примере во всех тегах A, вне зависимости от их атрибутов и содержимого, внутреннее содержимое тега (innerHTML) было заменено на текст "Парсинг сайтов"

Параметр Искомые теги

Указывает, в каких тегах надо производить замену. Можно указывать просто тег (div), можно указывать атрибут и его значение (class=pager), тег, атрибут и значение (span id=main), только значение атрибута (=data) или же значение атрибута с маской (=*row), а также другие комбинации или регулярные выражения, например, a class=(First|Second).

Параметр Тип замены

ReplaceInnerHTML - заменяет внутреннее содержимое тега на шаблон из третьего параметра Действия.

Действие Параметр Значение
HTML: Замена / изменение тегов Искомые теги span
Тип замены ReplaceInnerHTML
Шаблон замены практика!
Исходное значение   Результат
<div><span><strong>Лучший способ научиться парсингу - </strong></span></div>
 
<div><span>практика!</span></div>

AddBeforeInnerHTML - добавляет шаблон замены ДО внутреннего содержимого тега
AddAfterInnerHTML - добавляет шаблон замены ПОСЛЕ внутреннего содержимого тега

Действие Параметр Значение
HTML: Замена / изменение тегов Искомые теги span
Тип замены AddBeforeInnerHTML
Шаблон замены Лучшие 
Исходное значение   Результат
<div><span><strong>Парсеры на заказ</strong></span></div>
 
<div><span>Лучшие <strong>Парсеры на заказ</strong></span></div>

Те же самые параметры, где вместо InnerHTML написано OuterHTML, выполняют действие для всего тега.

ReplaceOuterHTML - заменяет тег и его содержимое на шаблон из третьего параметра Действия.

Действие Параметр Значение
HTML: Замена / изменение тегов Искомые теги span
Тип замены ReplaceOuterHTML
Шаблон замены Здесь был тег span
Исходное значение   Результат
<div><span><strong>Парсеры на заказ</strong></span></div>
 
<div>Здесь был тег span</div>

AddBeforeOuterHTML - добавляет шаблон замены ДО искомого тега
AddAfterOuterHTML - добавляет шаблон замены ПОСЛЕ искомого тега

Действие Параметр Значение
HTML: Замена / изменение тегов Искомые теги span
Тип замены AddAfterOuterHTML
Шаблон замены текст после тега span
Исходное значение   Результат
<div><span><strong>Парсеры на заказ</strong></span></div>
 
<div><span><strong>Парсеры на заказ</strong></span>текст после тега span</div>

Параметр Шаблон замены

Здесь может быть указан как просто текст (в примерах выше), так и специальные подстановочные коды:

[=text] - текстовое содержимое тега

Действие Параметр Значение
HTML: Замена / изменение тегов Искомые теги span
Тип замены AddAfterOuterHTML
Шаблон замены в теге было написано [=text]
Исходное значение   Результат
<div><span><strong>Парсеры на заказ</strong></span></div>
 
<div><span><strong>Парсеры на заказ</strong></span>в теге было написано Парсеры на заказ</div>

[Attr] - значение атрибута (вместо Attr вписывается название атрибута)

Действие Параметр Значение
HTML: Замена / изменение тегов Искомые теги option
Тип замены ReplaceOuterHTML
Шаблон замены Размер [data-size] ([data-size-ru])
Исходное значение Результат
<option data-size="L" data-size-ru="48"><strong>Заказать</strong></option>
<option data-size="XL" data-size-ru="50"><strong>Заказать</strong></option>
<option data-size="XXL" data-size-ru="52"><strong>Заказать</strong></option>
Размер L (48)
Размер XL (50)
Размер XXL (52)

Например, здесь мы вместо тегов option пишем слово "Размер" и прибавляем к нему значение размера в двух системах измерения, причем российское значение размера ставим в скобки.