Задание повторяющихся границ парсинга

ДОРОГИЕ ДРУЗЬЯ, ДЛЯ ТОГО, ЧТОБЫ ДОБАВИТЬ ОПРЕДЕЛЕННЫЙ ТЕКСТ ИЛИ КОД К КАЖДОМУ ЦИКЛУ ПОВТОРЯЮЩЕЙСЯ ГРАНИЦЫ ПАРСИНГА, НЕ НАДО ЭТОТ ТЕКСТ ПРОПИСЫВАТЬ В РЕДАКТОРЕ ШАБЛОНА ВЫВОДА!!! НУЖНО ЕГО ПРОПИСЫВАТЬ В НАСТРОЙКЕ ПОВТОРЯЮЩИХСЯ ГРАНИЦ (CTRL+5) ВОКРУГ/СЛЕВА/СПРАВА ОТ [VALUE], А В ШАБЛОН ВЫВОДА ВСТАВИТЬ ЛИШЬ <CD_CYCLE_GRAN_1!>!!!!!!! ПРОСТИТЕ, НО МОЖЕТ БЫТЬ СЕЙЧАС ВЫ ЭТО УВИДИТЕ!!!!!!!!

Повторяющиеся границы предназначены для парсинга нескольких частей кода WEB-документа (в то время, как обычные границы — для парсинга одной части кода WEB-документа). Например, повторяющимися границами можно парсить все картинки товара, комментарии или прочую информацию, которая в коде загружаемого WEB-документа заключена в схожие (одинаковые) теги или участи кода.

Допустим, нужно спарсить все картинки из этого кода:

1
2
3
BigPic="images/1.jpg"
BigPic="images/2.jpg"
BigPic="images/3.jpg"

В этом случае, для парсинга images/1.jpg, images/2.jpg и images/3.jpg нужно задать начало повторяющихся границ парсинга, как BigPic=", а конец, как ". Тогда мы получим следующий результат парсинга:

1
2
3
images/1.jpg
images/2.jpg
images/3.jpg

Где images/1.jpg, images/2.jpg, images/3.jpg — значения трех циклов повторяющейся границы парсинга. Если мы откроем настройку повторяющихся границ (ctrl+5), то увидим в шаблоне каждой повторяющейся границы парсинга (их всего 5) оператор [VALUE], который служит для вывода значения цикла повторяющейся границы. При парсинге на место [VALUE] будут поочередно подставляться наши значения циклов: images/1.jpg, затем images/2.jpg, затем images/3.jpg. Например, для загрузки этих трех картинок, в настройке повторяющихся границ парсинга (ctrl+5 или shift+ctrl+5) нужно прописать макрос DOWNLOADFILE вокруг оператора [VALUE]:

1
<DOWNLOADFILE>[VALUE]</DOWNLOADFILE>

Обратите внимание на то, что вы можете ограничить область поиска циклов повторяющейся границы парсинга обычной границей парсинга.

Для вывода значений циклов повторяющихся границ парсинга в результирующий файл (при парсинге контента) нужно в редактор шаблона вывода (ctrl+2) в надлежащую позицию вставить следующий(е) макрос(ы):

1
2
3
4
5
<CD_CYCLE_GRAN_1!> - для вывода всех циклов повторяющейся границы 1
<CD_CYCLE_GRAN_2!> - для вывода всех циклов повторяющейся границы 2
<CD_CYCLE_GRAN_3!> - для вывода всех циклов повторяющейся границы 3
<CD_CYCLE_GRAN_4!> - для вывода всех циклов повторяющейся границы 4
<CD_CYCLE_GRAN_5!> - для вывода всех циклов повторяющейся границы 5

А если вы хотите выводить значения каждого цикла повторяющейся границы в разные ячейки таблицы CSV, то необходимо в окне настройки повторяющихся границ парсинга (ctrl+5 или shift+ctrl+5) задать такой разделитель циклов — [CSVCS] (оператор разделителя ячеек при парсинге в таблицу CSV).


Порядок задания повторяющихся границ парсинга:

— если в списке ссылок главного окна программы нет ни одного элемента, то добавьте хотя бы один (F8)
— откройте редактор шаблона вывода (соответствующая кнопка на панели инструментов главного окна программы или ctrl+f2)
— выделите в дереве слева нужную границу парсинга, кликните по ней правой кнопкой мыши и в контекстном меню выберите соответствующий пункт

скриншот 1:
Content Downloader

В открывшемся окне задания границ парсинга:

— выделите в коде начало парсинга (откуда хотите брать контент) и нажмите кнопку «задать начало парсинга»
— выделите в коде конец парсинга (до куда хотите брать контент) и нажмите кнопку «задать конец парсинга»
— После задания начала и конца парсинга нажимаем кнопку «готово»

скриншот 2:
Content Downloader

После выполнения всего вышеперечисленного:

— вставляем макросы заданных границ парсинга в редактор шаблона вывода (двойной клик по границе парсинга в дереве слева или перетаскивание, смотрите скриншот 1)
— выполняем предпросмотр результата парсинга контента (ctrl+f2)
— готово, границы парсинга заданы


Изменение формата вывода повторяющихся границ парсинга:

Для редактирования формата вывода и разделителей циклов повторяющихся границ парсинга используйте «настройку повторяющихся границ» (данная кнопка выделена красным маркером на скриншоте 1).

скриншот 3:
Content Downloader 8

Где [VALUE] — есть значение цикла повторяющейся границы парсинга (макросов [VALUE] может быть несколько в шаблоне каждой повторяющейся границы парсинга).

Если вы хотите ограничить поиск циклов любой повторяющейся границы в определенном участке кода WEB-документа, то задайте обычную границу парсинга (задание обычных границ парсинга) для нужного участка кода и выберите номер заданной обычной границы парсинга в соответствующем выпадающем списке (эти списки отмечены зеленым маркером на скриншоте 3).

Шаблон любой повторяющейся границы парсинга можно вызвать в редакторе шаблона вывода:

скриншот 4:
Content Downloader

Для поочередного вывода циклов всех заданных повторяющихся границ парсинга используйте ОДИН макрос шаблона вывода <CD_CYCLE_GRAN_ALL!> вместо <CD_CYCLE_GRAN_1!>, <CD_CYCLE_GRAN_2!>, <CD_CYCLE_GRAN_3!>, <CD_CYCLE_GRAN_4!>, <CD_CYCLE_GRAN_5!> (для изменения разделителей повторяющихся границ и циклов пользуйтесь настройкой повторяющихся границ (скриншот 3)).


Greedy mode:

Например, мы парсим такую WEB-страницу:

1
;цикл 1;цикл 2;цикл 3;цикл 4;цикл 5;...

С которой нам нужно спарсить все циклы, разделенные точкой с запятой, задав начало парсинга — ; и конец парсинга — ;. Для этого, вставьте в начало парсинга повторяющейся границы макрос {greedy} (например: {greedy};).

Если не вставить макрос {greedy} в начало парсинга повторяющейся границы, то спарсятся только циклы: 1, 3, 5. Как видно, будут пропущены циклы 2, 4, так как конец парсинга цикла 1 является началом парсинга цикла 2 (и так далее).

С Greedy mode, начало парсинга следующего цикла может являться концом парсинга предыдущего!


Дополнительно:

— Номер тега начала и конца парсинга (выделены зелеными маркерами на скриншоте 2) в повторяющихся границах парсинга не учитываются;
— Если в тексте начала или конца парсинга есть динамическая часть, которая изменяется от одного документа к другому, то закомментируйте ее макросом {skip} (например: div id={skip});
— Для вывода циклов одной повторяющейся границы парсинга в разные ячейки CSV необходимо в окне настройки повторяющихся границ парсинга (ctrl+5 или shift+ctrl+5) задать такой разделитель циклов — [CSVCS] (оператор разделителя ячеек при парсинге в таблицу CSV) либо [CSVLB] (оператор разделителей строк таблицы);
— В настройку повторяющихся границ (ctrl+5 или shift+ctrl+5) можно прописывать любые макросы шаблона вывода;
— Обратите внимание на кнопку [+] на панели инструментов окна задания границ парсинга (скриншот 1). Если ее нажать, то границы парсинга будут парситься в месте с текстом начала и конца парсинга.


1 Star2 Stars3 Stars4 Stars5 Stars (оценок: 14, средний балл: 3,71)

Загрузка...
Автор: admin, 7 декабря 2013
Рубрики: Парсинг
3 комментария к сообщению: “Задание повторяющихся границ парсинга”
  1. hzhz:

    А как вытащить повторяющиеся участки из другой страницы?
    <URL=«ССЫЛКА»><START=""НАЧАЛО«:»»><END="КОНЕЦ«>

    а в «ССЫЛКА»

    {{«comment»:»Наименование 1 «},
    {«comment»:»Наименование 2 «},
    {«comment»:»Наименование 3 «}}

Написать комментарий

Вы должны войти чтобы добавить комментарий.

Последние статьи

css.php