Simple data scraper: migrate java -> php

Михаил16 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
08.10.2008

Настоящий проект представляет собой 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 (одном из хостинговых сайтов -- отредактировано чтобы избежать рекламы)

Спасибо,

МГ