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

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


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

Content Downloader


ЕЩЕ ВАЖНО ЗНАТЬ: Для инструмента задания границ парсинга (Ctrl+F1 из вкладки «Контент») есть возможность выбрать движок браузера навигации (что находится в нижней части инструмента). Для этого откройте окно с опциями программы (главное меню — настройка — опции программы (F8)) и во вкладке «Разное» выберите желаемый движок браузера навигации
1) Chromium — современный быстрый браузер (рекомендуется использовать этот движок)
При задании границ парсинга для навигации по коду с использованием Chromium наведите курсор на желаемый элемент WEB страницы (например, картинку) и нажмите кнопку F4
2) Internet Explorer
При задании границ парсинга для навигации по коду с использованием Internet Explorer просто кликните по желаемому элементу WEB страницы (например, по картинке)
PS: Chromium лучше всего работает на Windows 10



Дополнительные видео

Примечание: Если код WEB-документа (получаемый программой) отличается от содержимого WEB-страницы в браузере
Content Downloader

При использовании библиотек запросов INDY, Clever Internet Suite или WIN (выбор осуществляется в окне настроек HTTP-запросов, ctrl+h) программа отсылает простой GET (или POST) запрос к сайту с HTTP-заголовками (User Agent, Cookie, Custom Headers) прописанными в окне ctrl+h. В ответ на этот запрос может приходить код, отличный от кода, который получает WEB-браузер.

Когда вы в окне ctrl+h включаете библиотеку Internet Explorer (DOM), то для получения кода WEB-документа используется браузер Internet Explorer (установленный в системе). В этом случае HTTP-заголовки из окна ctrl+h в браузер не передаются (а берутся из браузера Internet Explorer системы), и выполняются все скрипты на WEB-странице (которые могут подгружать нужные данные).

Браузер, который расположен в нижней части окна задания границ парсинга и служит для осуществления удобной навигации по коду, посылает свои отдельные запросы к сайту и работает аналогично Internet Explorer (DOM). По умолчанию в нем выполнение скриптов отключено!

Content Downloader


При использовании библиотек запросов INDY, Clever Internet Suite или WIN (выбор осуществляется в окне настроек HTTP-запросов, ctrl+h) код, получаемый от сайта может отличаться от кода, который получает WEB-браузер по двум причинам:
1) Разные HTTP-заголовки (у GET или POST запроса, посылаемого программой и браузером);
2) Дополнительные данные подгружаются скриптами в браузере в момент выполнения WEB-страницы.

Чтобы программа получала такой же код WEB-документа, как и браузер, в первом случае достаточно передать HTTP-заголовки, например, Cookie, в окно ctrl+h. Во втором случае можно воспользоваться этим способом или включить Internet Explorer (DOM) в окне ctrl+h (чтобы запросы выполнял Internet Explorer с Cookie, взятыми из Internet Explorer системы).

Повторяющиеся границы предназначены для парсинга нескольких частей кода 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

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

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

ОДНОЗНАЧНО ВАЖНО УСВОИТЬ:

– Поиск начала границы парсинга выполняется от начала кода WEB документа
– Поиск конца границы парсинга выполняется от найденной позиции начала границы парсинга
– Номера вхождений для начала и конца границы парсинга (отмечены зелеными маркерами на скриншоте 2 (ниже)) устанавливают: какое найденное по счету вхождение определять, как начало или конец границы парсинга
– В начале или конце границ парсинга можно использовать оператор {skip}. Например:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Начало или конец границы парсинга, заданные, как:
<div id="product{skip}">
 
Будет находить:
<div id="product_337">
 
Или:
<div id="product_338">
 
 
 
Начало или конец границы парсинга, заданные, как:
<div id="product">{skip}<div id="descripton">
 
Будет находить:
<div id="product">
<a href="...">...
<div id="descripton">
 
Или:
<div id="product">
<ul><li>...</li></ul>
<div id="descripton">

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

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

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


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

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

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

Где [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) можно прописывать любые макросы шаблона вывода, а так же вставлять оператор [CC], который выводит номер цикла повторяющейся границы;
– Обратите внимание на кнопку [+] на панели инструментов окна задания границ парсинга (скриншот 1). Если ее нажать, то границы парсинга будут парситься в месте с текстом начала и конца парсинга.


Дополнительные материалы:

Вставка в шаблон одной повторяющейся границы парсинга смежных значений из любых других повторяющихся границ;
Скачивание нескольких картинок с использованием повторяющихся границ парсинга.


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

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

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

    а в “ССЫЛКА

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

    • hzhz says:

      GETMORECONTENT что то не перенеслось

    • admin says:

      Здравствуйте.

      Готов дать расширенный ответ с примерами на форуме http://forum.sbfactory.ru/ (ответ на вопрос системы NoSpam – иАОЕ). Так как ответы на вопросы по функционалу программы даются именно там.

      С уважением к вам, Сергей.

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

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

css.php