Порядок выполнения функций при парсинге контента

Тема в разделе "Функции и интерфейс программы", создана пользователем Root, 28 ноя 2011.

  1. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    При парсинге контента все функции выполняются в строгом порядке. И работа одной функции, например, htm to txt может отразиться на работе следующей (так как функции обрабатывают код документа поочередно и вносят в него изменения).

    Функции при парсинге контента в режиме “парсить заданные части документа” выполняются в следующем порядке:

    1.) Загрузка кода web-документа из интернета (GET-запросом);
    2.) Изменение кодировки сохраняемого документа (полученного кода)(если это требуется);
    3.) Функция “поиск-замена для основного кода” (на панели инструментов: “задать границы парсинга” – в открывшейся вкладке кнопка “поиск-замена для основного кода” (справа внизу));
    4.) Вычисление контента всех границ парсинга;
    4,7.) Функция поиск-замены для каждой границы парсинга (на панели инструментов: "дополнительные настройки границ парсинга" - в открывшемся окне "функция поиск-замены (что заменить|на что заменить)");
    5.) Удаление пробелов, пустых строк и знаков табуляций в начале и в конце каждой границы парсинга (флажок “удалять пробелы” во вкладке контент);
    6.) Функция поиск-замены во вкладке “контент” (флажок “включить поиск-замену”);
    7.) Функция “htm to txt” (удаление html-тегов кроме указанных) во вкладке “контент” (флажок “htm to txt”);
    8.) Функция перемешивания строк для текста границ парсинга (на панели инструментов: “дополнительные настройки границ парсинга” – в открывшемся окне флажок “перемешивать строки”);
    9.) Функция “фильтрация документов по списку ключевиков” для выбранной границы парсинга (на панели инструментов: “задать границы парсинга” – в открывшейся вкладке кнопка “фильтрация документов по списку ключевиков” (справа внизу));
    11.) Функция преобразования текста в одну строку при выборе расширения csv включается автоматически (помимо удаления переносов строк из текста границ парсинга удаляются точки с запятой)(для настройки: вкладка “контент” – группа “общее” – графическая кнопка “настроить функцию преобразования текста в одну строку”);
    12.) Функция преобразования текста в одну строку для каждой границы парсинга (на панели инструментов: “дополнительные настройки границ парсинга” – в открывшемся окне флажок “в одну строку”)(для настройки: вкладка “контент” – группа “общее” – графическая кнопка “настроить функцию преобразования текста в одну строку”);
    12,7.) Выполнение макроса шаблона вывода FIRST_REPLACE (функция поиск-замены для заданного участка текста документа);
    13.) Выполнение макросов шаблона вывода CD_DOCURL! (ссылка загружаемый web-документ) и CD_DOCPATH!;
    14.) Выполнение макроса шаблона вывода [INT_ID] (вставка числового ID (увеличивается с каждым документом));
    15.) Выполнение макроса шаблона вывода FILE (вставка строк из файла);
    16.) Выполнение макроса шаблона вывода GETMORECONTENT (загрузить указанный контент с указанного url-адреса);
    17.) Выполнение макроса случайного вывода текста {..|..|..} (для отключения макроса: меню – настройка – настройка макросов);
    18.) Выполнение макроса шаблона вывода SHAKESTRINGS (перемешка строк внутри макроса);
    19.) Выполнение макроса шаблона вывода TOPRICE (преобразование в формат цены и умножение цены на коэффициент);
    20.) Выполнение макроса шаблона вывода STRTOINTID (преобразование любого текста в числа);
    21.) Выполнение макроса шаблона вывода GETGOOGLEIMAGE (загрузка Google картинки по заданным ключевым словам);
    22.) Выполнение макроса шаблона вывода SYN (замена слов на синонимы);
    23.) Выполнение макроса шаблона вывода ONELINE (удаление переносов строк в указанной части текста);
    24.) Выполнение макроса шаблона вывода PHP_SCRIPT (обработка указанных данных php-скриптом);
    25.) Выполнение макроса шаблона вывода PHP_SCRIPT_2 (обработка указанных данных php-скриптом);
    26.) Выполнение макроса шаблона вывода DELTAGS (удаление указанных тегов в заданной части текста);
    27.) Выполнение макроса шаблона вывода HTMTOTXT (удаление всех тегов (в заданной части текста) кроме указанных);
    28.) Выполнение макроса шаблона вывода SHORT (создание короткой новости путем обрезания текста);
    28,7.) Выполнение макроса шаблона вывода IMORE (вставка тега more после указанного количества символов или после определенных символов);
    29.) Вставка ссылки на источник (вкладка “контент” – кнопка “дополнительно” – флажок “ссылаться на источник”);
    30.) Выполнение макроса шаблона вывода IMAGESPATH_ (и удаление строки с этим макросом из текста документа);
    30,5) Выполнение макроса шаблона вывода DOWNLOADFILENAMES_ (и удаление строки с этим макросом из текста документа);
    31.) Выполнение макроса шаблона вывода DOWNLOADFILE (загрузка указанного файла с интернета на диск);
    32.) Выполнение макроса шаблона вывода BEFORE_IMG_REPLACE (функция поиск-замены для заданного участка текста документа);
    32,1.) Выполнение макроса шаблона вывода PHP_SCRIPT_3 (обработка указанных данных php-скриптом);
    32,2.) Выполнение макроса шаблона вывода PHP_SCRIPT_4 (обработка указанных данных php-скриптом);
    33.) Выполнение макроса шаблона вывода IMAGESNAMES_ (и удаление строки с этим макросом из текста документа);
    34.) Загрузка картинок (из тегов NIMG и img) на диск (и замена ссылок скачиваемых картинок в коде документа на те имена, с какими она сохранились на диск);
    35.) Выполнение макроса шаблона вывода REPLACE (функция поиск-замены для заданного участка текста документа);
    36.) Выполнение макроса шаблона вывода DOCSNAMES_ (и удаление строки с этим макросом из текста документа);
    37.) Сохранение документа.
     
  2. nikolas1612

    nikolas1612 Member Пользователи

    Регистрация:
    27 ноя 2011
    Сообщения:
    439
    :cool:
    отлично. огромный респект автору.
     
  3. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.429
    Адрес:
    Latvia
    вот эту шпаргалку надо вызубрить чтоб не возникало проблем при составлении проекта
     
  4. japancarts

    japancarts New Member Пользователи

    Регистрация:
    19 авг 2013
    Сообщения:
    8
    Здравствуйте.
    Я вот когда в новой версии начал создавать проект, увидел в верхнем левом углу программы изменение цены. Подумал ещё, классная вещь. Потом настрою.
    Сейчас дошла очередь до этой настройки. И я убился её искать. Уж думаю не приснилась ли она мне.
    На форумах искал, в системе помощи тоже не нашёл. Ну помню же что кнопочка была, а найти никак не могу. Уже не первый день ищу.
    Помогите пожалуйста найти. Как до неё добраться?
    И так же вопрос, если эта кнопочка мне не приснилась а реально существует, то там как я понял только одну функцию можно сделать для всех цен. Например умножить всё на "х" или прибавить ко всем "ххх".
    А мне по большому счёту нужно разные товары увеличить на разные суммы.
    В прошлых проектах я заменял наименования товаров на цифру, на которую я изменяю цену.
    Потом в эксцеле создавал формулу по которой цена плюсовалась с этой цифрой и отображалась в нужном столбце. Но это муторно.
    Есть ли возможность при замене наименования товара на цифру, сделать так чтобы программа в столбце цены прописывала цену с просуммированным значением.
    Заранее благодарен.
     
  5. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте.

    Все макросы есть в дереве макросов в редакторе шаблона вывода (слева). Вам нужен макрос TOPRICE, найдите его с помощью ctrl+f и пользуйтесь.

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

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Подробно описан макрос TOPRICE тут Ссылки недоступны для гостей
     
  7. japancarts

    japancarts New Member Пользователи

    Регистрация:
    19 авг 2013
    Сообщения:
    8
    Спасибо.
    Посмотрел, прочитал.
    Только у меня всё равно в котелке отложилось что это какая то маленькая кнопка.
    И тааак. Получается что всё же ВСЕ цены можно поменять только на одно значение.А если я создам например условие <CD_GRAN_11!>+<CD_GRAN_12!>
    Где 12 это заменённые наименования товаров заменяются на некое значение.
    Такое работать будет?
    Могу конечно сам попробовать, но у меня 1100 наименований товаров, и времени улетит на попробовать...
    К тому же ответ может кому то ещё пригодиться.
    Заранее благодарен.
     
  8. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    забрал на обработку задачу japancarts
     
    Последнее редактирование: 15 июн 2014
  9. MAX3000

    MAX3000 New Member Пользователи

    Регистрация:
    14 дек 2010
    Сообщения:
    43
    Приветствую.
    Инструкцию нужно переписать в соответствии с новым интерфейсом программы - есть некоторые несоответствия.
     
  10. MAX3000

    MAX3000 New Member Пользователи

    Регистрация:
    14 дек 2010
    Сообщения:
    43
    Не стал создавать новую тему, решил отписать в этой - т.к. очень близкая тематика.
    Может раньше подымал данный вопрос, сейчас не помню, но повториться не будет лишним.

    Суть в чем?

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

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

    Плюс по таблице легко проконтролировать результаты парсинга, особенно если очень много адресов. Если с какого-то адреса неправильно спарсится информация, выделяем данную строку и после внесения правок в границы парсинга производим парсинг с единичного адреса.

    Возможно, а скорее всего так и есть, данную задачу можно решить с помощью двух видов шаблонов:
    1. для парсинга данных в базу данных (и какая-то первичная обработка получаемых данных);
    2. для вывода данных в файл (с окончательной обработкой данных, получаемых из базы, но в самой базе они менятся не должны!).

    Теперь, если через определенное время импортируем список адресов, те что есть в базе отсеиваются, а добавляются только отсутствующие, и парсим только пустые (при необходимости можно перепарсивать и имеющиеся, если кому нужно), что тоже положительно скажется на быстродействии.

    Вариантов уйма, всего так сразу и не опишешь, но то что данный алгоритм работы принесет только плюсы, то это однозначно, на мой взгляд.

    Если можно, реализуйте его пожалуйста.
     
    Последнее редактирование: 11 авг 2015

Поделиться этой страницей