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

При парсинге контента иногда требуется подгружать дополнительные данные со сторонних 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) <CD_DOCURL!>

4) [PARAM]

5) [COOKIES]

6) [CUSTOMHEADERS]

7) [FILE]

8) <PHP_SCRIPT_0>

9) [VAR]

10) [CD_DATE]

11) [CHECKENTRY]

12) [REPLACE]

13) [CHECKEDNTRY2]

14) <GETMORECONTENT>

15) [BEFORE_IMG_REPLACE]

16) <PHP_SCRIPT>

17) [FINAL_REPLACE]

Content Downloader


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

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


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

Loading...
Автор: admin, 2 June 2019
Рубрики: Парсинг
Tags: , ,

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

css.php