Как добавить к основному документу (который парсите) дополнительные подгружаемые данные (чтобы задать границы парсинга и с подгруженными данными)

При парсинге контента иногда требуется подгружать дополнительные данные со сторонних URL. Например, вы парсите товары интернет магазинов и опции для каждого товара подгружаются с дополнительных URL. Дополнительные данные можно подгружать макросами шаблона вывода GETMORECONTENT и PHP_SCRIPT, но, если это сделать обычным методом, то ответ от сайта вставится в шаблон вывода и вы не сможете задавать границы парсинга для подгруженного кода. Для таких задач и существует макрос [APPENDDOCSOURCE]. Если в него добавить макросы подгрузки данных, то сначала будут взяты границы парсинга из основного кода WEB-документа, затем выполнятся макросы подгрузки данных в [APPENDDOCSOURCE]…[/APPENDDOCSOURCE], после этого подгруженный код добавится к коду основного документа и вновь будут браться границы парсинга уже с основным кодом WEB-документа + подгруженным.


1) Берется URL из списка ссылок и загружается по нему код основного WEB-документа

2) Вычисляются границы парсинга

3) Срабатывают макросы для подгрузки дополнительных данных, которые расположены в [APPENDDOCSOURCE]…[/APPENDDOCSOURCE] (остальная часть шаблона вывода игнорируется)

4) К коду основного документа добавляется подгруженный с дополнительных адресов код

5) Заново вычисляются границы парсинга уже из основного + подгруженного кода

6) Далее срабатывают все функции и макросы уже в обычном порядке


Код, подгруженный в секции [APPENDDOCSOURCE]…[/APPENDDOCSOURCE] добавляется к коду основного документа следующим образом:

1
2
3
4
Основной код
[DOCSOURCEAPPENDED]
Подгруженный код
[/DOCSOURCEAPPENDED]

Content Downloader

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

Для того, чтобы вы могли задавать границы парсинга с подгруженным кодом сначала его нужно закешировать. Для этого выполните предпросмотр результатов парсинга документа (с настроенными макросами подгрузки в [APPENDDOCSOURCE]). Также убедитесь, что у вас включено кеширование WEB-документов.

Content Downloader

Content Downloader


Примечание:

В кеш подгруженные данные записываются только 1 раз. И если в кеше уже есть [DOCSOURCEAPPENDED], то макрос [APPENDDOCSOURCE] выполняться не будет. Для перезаписи кеша пользуйтесь функцией выполнения предпросмотра с предварительной очисткой кеша выбранного документа (F10).


Content Downloader


Внутри [APPENDDOCSOURCE]…[/APPENDDOCSOURCE] работают следующие макросы (срабатывают в перечисленном порядке):

1) макросы границ парсинга
2) [DOCSOURCE] 3)
4) [REPLACE] 5) (подгрузка данных GET-запросом)
6) [BEFORE_IMG_REPLACE] 7)
8) [FINAL_REPLACE] (подгрузка данных POST-запросом)


Content Downloader


Далее файл проекта настраивается обычным образом.

Всем спасибо!


1 Star2 Stars3 Stars4 Stars5 Stars (Еще нет оценок)

Загрузка...
Автор: admin, 2 июня 2019
Рубрики: Парсинг
Метки: , ,

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

css.php