- Как заказать парсер сайта
- Видеоинструкции по настройке
- Возможности программы-парсера
- Действия в парсере
- Раздел «Работа с HTML»
- Раздел «Текстовые»
- Раздел «Перекодировка и форматирование»
- Раздел «Проверка и сравнение»
- Раздел «Разное»
- Раздел «Функции массива»
- Раздел «Числовые»
- Раздел «Работа с переменными»
- Раздел «Листы и книги Excel»
- Раздел «Обработка файлов из папки»
- Раздел «HTTP запрос»
- Раздел «Internet Explorer»
- Раздел «Управление парсером»
- Раздел «Веб-запросы, XML, макросы VBA»
- Недокументированные действия
- Раздел «ИИ (нейросети)»
- Работа с браузером (Chrome и т.п.)
- Отключенные (устаревшие) действия
- Интерфейс программы
- Использование браузера
- Настройка парсера
- Ошибки при парсинге
- Вывод массива значений в одну ячейку
- Обход защиты Qrator, Incapsula и CloudFare
- Ошибка: сервер не ответил за 9 секунд
- Парсер перезаписывает данные в первой строке листа
- Невозможно запустить макрос, - нет доступа к проекту VBA
- Ошибка Compile error in hidden module
- Ошибка загрузки страницы по HTTPS (SSL Error)
- Дополнительные возможности
- Зарезервированные переменные и подстановочные коды парсера
- Кеширование страниц в парсере
- Переменные в парсере
- Обновление строк в существующей таблице при парсинге
- Переключение между наборами настроек в парсере
- Запуск мониторинга цен по расписанию
- Запуск парсера по расписанию
- Программный запуск парсера из внешнего макроса
- Доп. опции парсера (файл parser.ini)
- Наборы действий
- Прочие статьи по настройке парсера
- Коды останова парсера, и перехода на другое действие
- Плагины для парсера
- Запуск нескольких парсеров по очереди
- Объектная модель мониторинга цен
Объектная модель парсера
- Обработка капчи (Captcha) в парсере
- Прокси серверы
Объектная модель парсера |
Эта статья демонстрирует, что находится «под капотом» программы-парсера, — для тех, кому это интересно.
Parser [WebsiteParser] Корневой объект парсера
Name [String] Имя парсера
Description [String] Описание парсера
URL [String] URL инструкции с описанием этого парсера
filename [String] Путь к файлу настроек парсера (.xlp)
Version [String] Версия настроек парсера
AppVersion [Long] Версия программы, в которой сохранен парсер
MinAppVersion [Long] Минимально необходимая версия программы
FileFormat [Long] Версия формата файла (0 — XML, 2 — JSON)
BuildIn [Boolean] Флаг встроенного в лист Excel парсера
ExternalStart [Boolean] Флаг запуска из другого парсера
Sheet [Worksheet] Целевой лист Excel для вывода результатов
Parent [WebsiteParser] Ссылка на родительский парсер (если запущен из другого парсера)
Options [ParserOptions] Общие настройки парсера, таймауты, кэш, работа с файлами Excel
LoadMode [Long] Способ загрузки страниц по умолчанию (WinHTTP, IE, Browser)
RequestTimeout [Long] Таймаут HTTP-запроса в секундах
Pause [Single] Пауза между обработкой исходных значений в секундах
UseCache [Long] Использование кэширования запросов
UseFileCache [Boolean] Использование файлового кэша
RemoveScripts [Boolean] Удалять теги <script> из загруженного HTML
RemoveIFrames [Boolean] Удалять теги <iframe> из загруженного HTML
ShowErrors [Boolean] Показывать всплывающие уведомления об ошибках
RetryCountOnError [Long] Количество повторных попыток запроса при ошибке
Workbook_Filename [String] Путь к книге Excel для открытия или сохранения
Workbook_Create [Boolean] Создавать новую книгу, если файл не найден
Workbook_Save [Boolean] Сохранять книгу после завершения работы парсера
ResourceFileList [Dictionary] Словарь имен подключенных файлов ресурсов
SourceData [ParserSourceData] Настройки источника исходных данных
Mode [PARSER_SOURCES] Режим источника (столбец, диапазон чисел, фикс. значение и др.)
SourceSheet [Worksheet] Лист Excel с исходными данными
ColumnMode_Column [Long] Номер столбца с исходными данными
ColumnMode_FirstRow [Long] Начальная строка с данными
NumRangeMode_MinValue [Long] Начальное значение диапазона чисел
NumRangeMode_MaxValue [Long] Конечное значение диапазона чисел
NumRangeMode_Step [Long] Шаг изменения числа
FixedValueMode_Value [String] Фиксированное исходное значение или список значений
FoundColumnMode_Find_Text [String] Текст заголовка для поиска столбца
SheetRangeMode_Find_Text [String] Маска поиска ячеек или гиперссылок на листе
ActiveItem [ParserSourceItem] Текущий обрабатываемый элемент исходных данных
index [Long] Порядковый номер элемента
Value [String] Значение исходного элемента (URL, текст, число)
SheetRangeMode_Cell [Range] Ссылка на исходную ячейку в режиме поиска по листу
Items [ParserSourceItem] Все инициализированные элементы исходных данных
index [Long] Порядковый номер элемента
Value [String] Значение исходного элемента (URL, текст, число)
Actions [ArrayActions] Цепочка действий по обработке исходных данных (Уровень 1)
ActiveLevel [Long] Уровень вложенности, активный в редакторе
InTest [Boolean] Флаг выполнения в режиме тестирования
Items [ArrayAction] Список действий текущего уровня
index [Long] Порядковый номер действия в списке
Name [String] Отображаемое название функции
Codename [String] Системное кодовое имя функции
Category [FUNCTION_CATEGORIES] Категория функции (HTML, Текст, Массив и др.)
Enabled [Boolean] Флаг активности действия
EnabledForTestMode [Boolean] Выполнять только в режиме тестирования
Comment [String] Комментарий пользователя к действию
parameters [ArrayActionParameter] Параметры конкретного действия
Name [String] Системное имя параметра
Value [String] Заданное значение параметра
DefaultValue [String] Значение по умолчанию
Description [String] Описание параметра для интерфейса
Style [ActionParameterStyles] Тип элемента управления (текст, список, цвет)
SubActions [ArrayActions] Рекурсивный подуровень действий (Уровень 2, 3, ... N)
Columns [OutputColumns] Настройки вывода результатов на лист Excel
Enabled [Boolean] Включен ли вывод результатов на лист
AutoOrder [Boolean] Автоматическая нумерация столбцов по порядку
AutoOrder_FirstColumn [Long] Начальный столбец при автонумерации
OutputArrayValuesToSeparateRows [Boolean] Выводить каждый элемент массива в отдельную строку
SearchForRow [Boolean] Режим поиска существующей строки для обновления
SearchForRow_Column [Long] Номер столбца для поиска строки
SearchForRow_Text [String] Искомое значение для идентификации строки
SheetOptions [OutputSheetOptions] Параметры листа (заголовки, очистка, FastOutput, высота строк)
HeaderRowNumber [Long] Номер строки заголовков таблицы
BaseColumn [Long] Базовый столбец для определения последней строки
ClearSheetOnStart [Boolean] Очищать лист перед запуском парсера
CreateNewWorkbook [Boolean] Создавать новую книгу Excel для результатов
OutputColumnsNames [Boolean] Выводить названия столбцов в строку заголовков
FormatColumns [Boolean] Применять форматирование к столбцам
FastOutput [Boolean] Режим буферизованной быстрой записи массивом
ScreenUpdatingInterval [Long] Интервал обновления экрана (в строках)
Actions [ArrayActions] Общие действия перед выводом во все столбцы
Items [ArrayAction] Список действий текущего уровня
parameters [ArrayActionParameter] Параметры конкретного действия
SubActions [ArrayActions] Рекурсивный подуровень действий (Уровень 2, 3, ... N)
Items [OutputColumn] Коллекция настроенных столбцов вывода
index [Long] Порядковый номер столбца в списке
Column [Long] Номер столбца на листе Excel
Name [String] Заголовок столбца
Codename [String] Кодовое имя столбца
Enabled [Boolean] Вычислять ли значение для этого столбца
OutputEnabled [Boolean] Выводить ли вычисленное значение на лист
MulticolumnEnabled [Boolean] Вывод элементов массива в несколько столбцов
DynamicColumns [Boolean] Автоматическое создание столбцов (формат Имя|Значение)
Format [OutputColumnFormat] Форматирование ячейки (ширина, гиперссылки, примечания, вставка фото)
Enabled [Boolean] Активно ли форматирование столбца
ColumnWidth [Single] Ширина столбца в символах
WrapText [Boolean] Перенос текста по словам
HorizontalAlignment [Long] Горизонтальное выравнивание текста
FontBold [Boolean] Полужирное начертание шрифта
NumberFormat [String] Числовой формат ячейки Excel
HeaderColor [Long] Цвет заливки заголовка столбца
HyperlinkEnable [Boolean] Выводить значение в виде гиперссылки
CommentEnable [Boolean] Добавлять примечание к ячейке
PasteImage [Boolean] Вставлять изображение в ячейку по ссылке
Actions [ArrayActions] Индивидуальные действия для вычисления значения конкретного столбца
Items [ArrayAction] Список действий текущего уровня
parameters [ArrayActionParameter] Параметры конкретного действия
SubActions [ArrayActions] Рекурсивный подуровень действий (Уровень 2, 3, ... N)
Downloads [ParserDownloads] Настройки скачивания файлов
Enabled [Boolean] Включена ли загрузка файлов
nOK [Long] Счетчик успешно скачанных файлов
nERR [Long] Счетчик ошибок при скачивании
Actions [ArrayActions] Общие действия перед скачиванием всех файлов
Items [ArrayAction] Список действий текущего уровня
parameters [ArrayActionParameter] Параметры конкретного действия
SubActions [ArrayActions] Рекурсивный подуровень действий (Уровень 2, 3, ... N)
Items [ParserDownload] Коллекция заданий на скачивание
index [Long] Порядковый номер задания
Name [String] Название загрузки
Enabled [Boolean] Флаг активности загрузки
folder [String] Папка для сохранения скачанных файлов
FilenameMode [DOWNLOAD_FILENAME_MODES] Режим формирования имени файла (Авто, Маска, Оригинал)
FilenameMask [String] Шаблон имени файла (например, image_{2}.jpg)
NeedAuth [Boolean] Использовать WinHTTP с авторизацией/cookies для скачивания
POST_Enabled [Boolean] Скачивать файл с помощью POST-запроса
IgnoreErrors [Boolean] Игнорировать ошибки при скачивании
OpenFolderOnFinish [Boolean] Открыть папку с файлами после завершения парсера
Actions [ArrayActions] Действия для формирования URL конкретного файла
Items [ArrayAction] Список действий текущего уровня
parameters [ArrayActionParameter] Параметры конкретного действия
SubActions [ArrayActions] Рекурсивный подуровень действий (Уровень 2, 3, ... N)
AASets [ActionSets] Именованные наборы действий (события: BeforeStart, OnStart, OnFinish и др.)
Items [ActionSet] Встроенные в парсер наборы действий
index [Long] Порядковый номер набора
Name [String] Уникальное имя набора действий
Description [String] Описание назначения набора
SetType [String] Тип набора действий
Actions [ArrayActions] Список действий внутри набора
Items [ArrayAction] Список действий текущего уровня
parameters [ArrayActionParameter] Параметры конкретного действия
SubActions [ArrayActions] Рекурсивный подуровень действий (Уровень 2, 3, ... N)
ExtraItems [ActionSet] Внешние наборы действий, подгружаемые из файлов ресурсов
Name [String] Имя внешнего набора действий
Source [String] Имя файла ресурсов, из которого загружен набор
ObjectID [String] Идентификатор объекта в файле ресурсов
Actions [ArrayActions] Список действий внутри набора
Items [ArrayAction] Список действий текущего уровня
parameters [ArrayActionParameter] Параметры конкретного действия
SubActions [ArrayActions] Рекурсивный подуровень действий (Уровень 2, 3, ... N)
Variables [Variables] Пользовательские переменные и элементы UI для их ввода
Items [Variable] Отдельная переменная (TextBox, ComboBox, CheckBox, ListBox)
index [Long] Порядковый номер переменной
Name [String] Имя переменной (используется как %Name%)
Value [String] Текущее значение переменной
DefaultValue [String] Значение по умолчанию
ControlType [String] Тип визуального элемента управления (TextBox, ComboBox, CheckBox, ListBox)
LabelText [String] Подпись элемента на форме
Source [Variant] Список значений для выпадающих списков
Hidden [Boolean] Скрывать ли переменную в интерфейсе пользователя
DoNotSaveValue [Boolean] Не сохранять введенное значение в файле парсера
Macros [ParserMacros] Встроенные VBA-макросы парсера
Items [ParserMacro] Отдельный макрос (имя и исходный код)
index [Long] Порядковый номер макроса
Name [String] Название процедуры макроса
code [String] Исходный VBA-код макроса
Proxy [ProxyServers] Настройки прокси-серверов и ротации
Enabled [Boolean] Включено ли использование прокси
ActiveProxy [ProxyServer] Текущий активный прокси-сервер
SwitchInCountEnabled [Boolean] Переключать прокси по количеству запросов
SwitchInCount [Long] Количество запросов до смены прокси
Attempts [Long] Макс. количество попыток смены прокси для одного URL
Reuse [Boolean] Использовать список прокси повторно по кругу
Check_URL [String] URL для проверки работоспособности прокси
Items [ProxyServer] Список всех прокси-серверов
index [Long] Порядковый номер прокси в списке
Address [String] Адрес прокси (IP:Port или Login:Pass@IP:Port)
QueriesOK [Long] Количество успешных запросов через прокси
QueriesERR [Long] Количество неудачных запросов
Locked [Boolean] Флаг временной блокировки прокси
Captcha [CaptchaOptions] Настройки обнаружения и обхода капчи
Enabled [Boolean] Включена ли проверка на наличие капчи
DetectionText [String] Текст-признак капчи в коде страницы
Handler [String] Имя набора действий для распознавания капчи
Attempts [Long] Макс. количество попыток распознавания капчи
ReloadPage [Boolean] Перезагружать ли страницу после решения капчи
Resources [ResourceFiles] Управление подключенными внешними файлами ресурсов (.xlr)
ObjectsCache [Dictionary] Кэш загруженных объектов ресурсов
Items [ResourceFile] Файл ресурсов
Name [String] Имя файла ресурсов
filename [String] Полный путь к файлу ресурсов (.xlr)
Items [ResourceFileObject] Объекты внутри ресурса (Column, Download, ActionSet, Macro)
ID [String] Уникальный идентификатор объекта в файле
Name [String] Название объекта
ObjectType [String] Тип объекта (Column, Download, ActionSet, Macro)
content [String] XML-содержимое сериализованного объекта
Детальное описание узлов и связей объектной модели WebsiteParser
1. Контейнеры списков действий (ArrayActions → ArrayAction → ArrayActionParameter)
Этот блок является универсальным строительным блоком всей архитектуры парсера. Он встраивается в SourceData, Columns (и каждый OutputColumn), Downloads (и каждый ParserDownload), а также в каждый набор действий ActionSet:
- ArrayActions — управляющий контейнер списка действий. Имеет свойство
SubActions(и обратную ссылкуParentActions), что формирует связный список вложенных уровней (Уровень 1 → Уровень 2 → Уровень N) для поэтапного парсинга (например: рубрика → список товаров → карточка товара). - ArrayAction — конкретная команда (функция парсера или плагина) со свойствами
Codename,Category,Enabledи коллекциейparameters. - ArrayActionParameter — аргумент действия, описывающий его имя, значение, тип визуального элемента управления (
ActionParameterStyles) и список допустимых значений.
2. Поток обработки данных (SourceData → Downloads → Columns)
- ParserSourceData — определяет режим получения входных данных (
ps_Column,ps_FoundColumn,ps_SheetRange,ps_NumericRange,ps_FixedValue) и генерирует коллекциюItemsиз объектов ParserSourceItem. КаждыйParserSourceItemхранит само значение (Value) и привязку к исходной строке или ячейке листа. - ParserDownloads — содержит общие
Actionsи коллекцию задач ParserDownload, каждая из которых управляет авторизацией, POST-запросами, масками имен файлов и обработкой ошибок при скачивании. - OutputColumns — управляет выводом данных на лист Excel. Включает глобальные настройки листа (OutputSheetOptions), поддержку буферизованной быстрой записи в память (режим
FastOutput) и коллекцию столбцов OutputColumn, каждый со своим форматированием (OutputColumnFormat).
3. Инфраструктурные и сервисные модули
- ActionSets — разделяет именованные наборы действий на локальные (
Items, сохраняются внутри файла парсера) и внешние (ExtraItems, загружаются динамически при инициализацииResources). - ResourceFiles — связывает парсер с внешними библиотеками объектов (ResourceFile → ResourceFileObject), которые при загрузке конвертируются в стандартные объекты
OutputColumn,ParserDownload,ActionSetилиParserMacro. - ProxyServers — управляет пулом объектов ProxyServer, отслеживает статистику успешных и ошибочных запросов (
QueriesOK,QueriesERR) и отвечает за переключение активного прокси (ActiveProxy). - Variables — хранит коллекцию объектов Variable, которые содержат значения для подстановки при выполнении парсера и умеют динамически генерировать элементы интерфейса (
TextBox,ComboBox,ListBox,CheckBox) на форме настройки.
- Добавить комментарий
- 20 просмотров









