Simple data scraper: migrate java -> php
Настоящий проект представляет собой proof of concept, и при удачном завершении вероятно потребует дальнейшей полноценной разработки.
Предметом разработки является php web-interface к специализированному поисковому сайту.
Разработчик может воспользоваться имеющимся кодом (на java) который выполняет все описанные ниже операции с локальной машины. Все дополнительные подробности и java код будут предоставлены при взаимном интересе.
User interface приложения представляет собой один TextField, один ListBox со списком предопределенных значений и две кнопки "Search" и "From Cache". Дизайн не нужен.
1. При введенных/выбранных пользователем данных, после нажатия кнопки Search скрипт:
- формирует по известному алгоритму GET request. Кроме текстового описания алгоритма имеется java код (макс 5 строк), выполняющий эту операцию
- запрашивает полученный URL и получает ответ -- ответ поискового сайта представляет собой текст javascript функции, т.к. поисковый сайт расчитывает получить ajax-request.
- парсит полученный текст, вынимая из него 7-10 параметров. Для оценки сложности -- Java код, выполняющий эту операцию, занимает макс 20 строк.
- сохраняет raw text response + extracted parameters в базе данных по ключу (DateTimeNow + TextFieldValue + ListBoxValue)
- и, наконец, выводит на страницу (в произвольной табличной форме, дизайн по прежнему не нужен) все полученные данные (за исключением raw text response) для только что отпарсенного запроса, а так же для всех запросов, сделанных ранее для пары (TextFieldValue + ListBoxValue), упорядоченных по дате.
2. При введенных/выбранных пользователем данных, после нажатия кнопки From Cache скрипт:
- выводит на страницу (в той же произвольной форме, что и в сценарии 1) данные, выбранные из базы для всех запросов, сделанных ранее для пары (TextFieldValue + ListBoxValue), упорядоченных по дате.
Валидация введенных входных данных НЕ требуется.
Используемая версия PHP - произвольная (с оговоркой об обязательном тестовом deploy ниже).
Единственным фактором, усложняющим разработку-тестирование, является ограничение поискового сайта на число запросов с одного IP -- макс 5 в сутки. Для упрощения дебага разработчику могут быть предоставлены десятки сохраненных raw text responce для различных наборов входных данных, для имитации ответа сайта после начала действия ограничения.
Необходимым условием завершения работы является
- передача заказчику всех исходных кодов
- произведенный _разработчиком_ deploy скрипта на один из бесплатных php-aware хостингов (по выбору разработчика). Разработчик может (не обязательно) воспользоваться имеющейся регистрацией на www.*****.com (одном из хостинговых сайтов -- отредактировано чтобы избежать рекламы)
Спасибо,
МГ