Развитый граббер/парсер на Perl
Нужно написать развитый парсер/граббер RSS на Perl.
На входе парсера будет таблица RSSta с таким набором полей:
1. id
2. r_ver
Версия RSS (0.91, 0.92,1.0,2.0) или Atom. RDF версию также надо уметь грабить.
3. r_fulltext
0 – сайт не отдает полную версию контента в RSS
1 – сайт отдает полную версию контента в RSS
4. r_url
URL RSS канала
5. r_rubrik
Рубрика канала. Будет указываться мной при заполнении таблицы.
Также в таблице могут быть другие поля, не значимые для вашей работы, поэтому надо делать выборку из базы в виде SELECT id, r_ver, …., а не SELECT * ….
Что должен делать скрипт.
1. Скрипт будет запускаться каждый день моим кроном по 4-5 раз в день.
2. Он делает выборку всех RSS каналов из таблицы RSSta (описана выше)
3. Если r_fulltext==1, то скрипт просто выдерает весь контент из фиды и укладывает в таблицу content_[id – из таблицы RSSta]. Набор полей в таблице content_xxx будет примитивный: id, дата, контент и длина контента без пробелов и тегов.
4. Если r_fulltext==0, из фиды выдераем адрес контента, заходим по ссылке, находим весь контент и точно также сохраняем его в таблицу content_[id].
Что ОБЯЗАТЕЛЬНО должен уметь скрипт:
1. Работать со всеми версиями RSS и Atom фид
2. Вести лог своей работы.
3. Если в контенте будут встречаться картинки, то пути к ним надо заменять на абсолютные.
4. Работать быстро!
Все фиды, которые будут находится в базу будут проверены фид валидатором, так что непредсказуемых ситуаций возникнуть не должно. Также вы должны учесть, что фидов в таблице RSS будет порядка 10 000, притом что 9 000 из них НЕ БУДУТ отдавать полный контент в фиду, поэтому суммарные нагрузки на скрипт могут доходить до 100 000 страниц в сутки. Поэтому приветствуется использование неблокирующих сокетов, многопоточность и событийные машины (особенно POE).
Если в работе будут использованы какие-то нестандартные модули, то обязательна ссылка на CPAN.
Просьба людей без опыта и без знания RSS не беспокоить. Предоплату могу сделать в минимальном размере и то только людям с хорошей репутацией.
Сроки разработки не критичны.
Если будут вопросы, то готов обсудить по асе: 237620497.
В своих предложениях сразу указывайте срок и цену.