Грабим статью целиком с помощью Yahoo Pipes
из рубрики Yahoo Pipes от 25.Янв, 2009
Вам нужно заграбить статью новостного портала на свой сплог, а каварный одмин выдает в rss только маленький тизер? Это не проблема для Yahoo Pipes. Для тех, кто еще не слышал о данном сервисе скажу, что это мощный инструмент для получения контента со всяческих веб-ресурсов. Обладает множеством функций для парсинга, фильтрации и т.п.
Итак, нам понадобятся следующие элементы для нашей трубы:
- Fetch Feed — собственно туда впишем источник rss
- Loop — цикл, который нужен нам для последовательной обработки записей фида
- Fetch Page — эта штука будет переходить на на страницу-источник и брать оттуда статью целиком
- Rename — нужен для восстановления структуры rss (конечно, если вы будете направлять трубу не в rss-агрегатор, а в какойто ваш скрипт, можно не восстанавливать)
- Regex — как понятно из названия, работает с регулярными выражениями. Нужен для замены фрагментов текста
Как видно из скрина, Fetch Page вставляется в Loop (для этого перетаскиваем FP из палитры компонентов на d&g поле лупа). Теперь о заполнении полей:
- Fetch Page URL — вписываем item.link, это параметр формата rss, в котором находится источник
- Fetch Page Cut content from/to — смотрим страницу, которую будем грабить и ищем отличительные признаки начала и конца контента, который нам нужен
- Fetch Page assign all results to — item.description — контент содержится именно в этом поле, согласно формату rss, хотя можно было придумать и свое поле, потомучто его всеравно позже надо переименовывать из-за особенностей работы Loop
- Rename — в первое поле пишем item.description.0.content, в третье description (такую неправильну структуру, которую приходится исправлять задает Loop)
- Regex — в поле replace пишем регулярное выражение, в поле with — то на что будем заменять. Если убераем лишние теги (которые оставляет блок Fetch Page) оставляем поле пустым. Если вам не знакомы g s m i ключи — погуглите :] а то я устал писать уже
Далее подключаем regex к выходу трубы, сохраняем, экспортируем в rss и подключаем в агрегатор вроде wp-o-matic или feedwordpress. Вот впринципе и все. Замечу, что в яндекс трудно попасть с подобным контентом, если ваш домен обладает худшими показателями, чем донорский. Можете попробовать синонимизировать, кароче вам решать :]
февраля 1, 2009 on 6:49
Спасибо за инструкцию: сейчас опробую на практике.
На днях пытался воспользоваться feedex.net, но он с задачей не справился.
февраля 1, 2009 on 7:46
Миша Тишина, рад помоч :] Я раньше не слышал о feedex.net. Похоже он будет полезен только непосредственным читателям лент.
А вобще с пайпами мало что может потягаться. Единственное, чего мне не хватает в них, так это постинга через XML-RPC. Такая функция вродебы есть в xfruits.com, на днях изучу его поподробнее.