Программа на PHP для сбора информации
Требуется написать 3 скрипта на PHP для сбора информации с заданных сайтов с помощью предопределённых регулярных выражений.
start.php и classes/worker.php используют таблицу crawler_sites с полями id, domain, config, qn_url_done, qn_url_err, sts
Все ошибки фиксируются функцией SaveLog(string).
Перед выполнением задания исполнитель получит дополнительные вспомогательные файлы: готовые регулярные выражения, функции типа DetermineNAME, обработка кодировок, картинок, регулярных выражений и т.п.
Ориентировочный алгоритм приведён ниже.
---
start.php выполняет следующие действия:
1. Очищает таб.crawler_sites.
2. Заполняет таб.crawler_sites из CSV-файла. Строка берётся в том случае, если колонка use==1.
3. Вызывает функцию Init() из внешнего файла (proc.php).
4. Запускает worker.php?wid=1 в отдельном окне.
---
worker.php выполняет следующие действия:
1. Создаёт экземпляр класса CWorker.
2. Вызывает функцию CWorker->Run({$_GET['wid']})
---
classes/worker.php выполняет следующие действия:
10. Берёт данные сайта из crawler_sites
20. Инициализирует управляющие параметры из config
30. Составляет массив URLs на основе crawler_sites
40. Перед каждым открытием страницы:
a) если sts==30, тогда завершить работу;
b) если qn_url_done > MAX_SITE_URL_TO_PROCESS, тогда завершить работу;
c) если qn_url_err > MAX_SITE_URL_ERR, тогда завершить работу.
50. Открывает URL и получает содержимое страницы.
60. Вызывает функцию DetermineInfo() для определения массива информации arInfos.
70. Если параметр Info>0, вызывает функцию DetermineInfoDet() для каждого элемента массива arInfos для определения дополнительной информации.
80. Если присутствует метка DN, то вызывает функцию DetermineCatForD(DN, &$arInfos) для определения ID категории контента.
90. Сохраняет картинки в папку PATH_IMAGES/domain в двух вариантах - _s.jpg и _l.jpg
100. Вызывает функцию DetermineURLnext() для определения URL следующей страницы.
110. Переходит к п.40