3 января 2008 г.

Потрошим кино: творческие задумки

ТЗ
Задание: написать скрипт, который будет искать информацию на внешнем сайте и выдирать оттуда информацию. Более конкретно, брать информацию с сайта film.ru по фильмам.
Итого: на входе запрос пользователя типа : "Терминатор 2"
На выходе: информация честно украденная с сайта фильм.ру
Инструмент: язык программирования PHP или perl + великие и могучие регулярные выражения.

Рекогносцировка
Бегло пробежавшись по сайту (рекомендую) film.ru и посмотрев на аккуратные ссылки вида, мы получаем следующие разведданные:
http://www.subj.ru/newsitem.asp?id=4391 (сразу понятно что это новстная статья)
или
http://www.subj.ru/article.asp?id=4531 (это статья)
или вот
http://www.subj.ru/afisha/movie.asp?code=KNZEPR -- а вот это то что нам нужно, информация о фильме с картинками, режиссерами и списком актеров (с ссылками) и прочей лабудой, типа трейлеров.

Все выглядит просто на первый взгляд, но в работе сайта учавствует javascript (причем один из них работает на другой сайт), видимо это есть хитромудрый антилич, и этой проблемой конечно предстоит заняться вплотную.

Итак (ближе к телу), мною выявлены два метода решения задачи:
1. "В лоб". Скрипт запрашивает информацию от пользователя и лезет в интернет, смотреть лично информацию на сайте, при этом лихо обходя проверки, используя прокси и случайные интервалы запроса. Получает информацию от поискового движка, разбирает её на ссылки и предложения и показывает результат своего труда пользователю.
Пользователь видит ссылки, клацает мышкой и скрипт устремляется качать информацию, грамотно разбирает её и показывает пользователю. Все счастливы, пока не введена новая антиличинговая проверка или сайт с таким скриптом вообще не закрыт по жалобе администрации сабжа.
2. "Со спины". Скрипт не будет лазить в интернет, он будет тихо и мирно ковыряться в БД, которую мы предварительно наполним информацией, которой поделиться сайта (жертва).
Таким образом, задача разбивается на две.
2.1. Хитрый скрипт используя естественные складки местности и включив невидимость (см. п.1) пробегается по базе фильмов, заглядывая в каждую букву каталога и заглядывая по характерным ссылкам, качает страницы и разбирает их на составляющие (название, год выпуска, актеры и т.д.): т.е. парсит. Найденную информацию он бережно сохраняет в БД типа MySQL.
2.2. Тут все просто. Запрос пользователя, поиск в БД и выдача результат. Все счастливы, пока владельцы сайта не прознали про ... Но это уже другая история.

Награда
Награда не предусмотрена. Возникает резонный вопрос, стоит ли заниматься таким вообщем непростым заданием? Для себя лично конечно стоит! гордо отвечаю я и бью себя пяткой в грудь...

Комментариев нет :

Отправка комментария