Пример использования Yahoo Pipes или Как получить полный текст новости из фида, если в RSS-ленту отдается не полная статья…
19th Январь 2008. Рубрики: RSS, Yahoo Pipes, Веб, Регулярные выражения. 9 коммент..
Когда я захотел сделать блог в который бы статьи добавлялись автоматически из выбранных мной новостных источников возникла проблема… все RSS-фиды по тематике моего блога отдавали статьи в RSS-ленту не полностью, а лишь анонсами… в то время как мне необходимы были полные тексты этих статей для размещения их на моем блоге……
В поисках способов автоматизированного получения полных текстов этих статей я потратил довольно много времени… многие писали что можно там наваять свой скрипт и т.д… но это мне не подходит поскольку я не знаю языков программирования, да и html то не знаю особо… Однако благодаря небезызвестному многим и его статье мне открылись широчайшие возможности , которые позволили мне совершить задуманное…
Кратко о :
“…Yahoo Pipes – это очень интересный инструмент для работы с RSS-потоками. Это не очередной онлайн-агрегатор, но инструмент куда более изящный и сложный. Одна из основных его возможностей — создание персональных RSS-потоков при помощи различных модулей, отвечающих за получение, фильтрацию, анализ, перевод, преобразование и сортировку потоков. Результат работы Pipes можно получить в виде нового RSS-потока, или же в формате JSON…”
Увидев вышеназванную статью Тормоза я стал усиленно изучать механизм работы описанной в его статье … Изучение шло непросто, пришлось еще поработать с help`ом Yahoo Pipes, только тогда механизм работы трубы стал полностью мне понятен… Но время было потрачено не зря и поняв как работает его труба я на следующий же день легко реализовал поставленную самим собой задачу, сделав для этого свой пайп, который легко выдирает из rss-фида с анонсами новостей на Allboxing.ru полные тексты этих новостей…
Сама разработанная мной труба (pipe) представлена ниже:
Как видно на рисунке Yahoo Pipes имеет очень удобный графический интерфейс… Сама труба имеет модульную структуру, я использую только 5 модулей в своей трубе в то время как разработчики Yahoo Pipes придумали еще множество полезных модулей, которые вы можете использовать (например, перевод содержимого с одного языка на другой, сортировка элементов выходного фида по дате, различная фильтрация с целью убрать из фида, получаемого на выходе, ненужные вам элементы или выбрать только элементы посвещенные определенной тематике).
Чтобы получить короткую справку по любому из элементов и ссылку на пример нужно нажать на знак “?” в заголовке любого модуля.
Внизу есть Debugger в котором можно просмотреть что у вас получается на выходе каждого используемого вами модуля…
Итак рассмотрим работу трубы по порядку:
1. Fetch Feed.
Этот модуль позволяет получить содержимое выбранных фидов (у меня выбран один фид но можно вбить столько сколько нужно)… На выходе модуля имеем содержание нужного фида представленное в виде отделных item`ов: link, description и т.д. с каждым из которых можно затем работать… Как видно на рисунке, Yahoo Pipes не понимает кодировки выбранного мной русскоязычного фида, однако для меня это не важно поскольку из всего фида мне нужен только item link который содержит ссылку на страницу, содержащую полную версию искомой новости…
2. Loop + Fetch Page.
Модуль Loop с помещенным в него модулем Fetch Page вытаскивает страницы с полными новостями по ссылкам содержащимся в item`е link исходного фида. Модуль Fetch Page появился совсем недавно, именно с его появлением стало возможно быстро решать задачи парсинга страниц. Раньше для этого приходилось использовать сторонние сервисы вроде Feedity или собственные скрипты. Модуль позволяет получить содержимое любой странички, вырезать из неё лишнее, да ещё и разделить на отдельные элементы. Я вырезаю из страниц нужное мне содержимое начинающееся с “<h3 class=»title»>” и заканчивающееся на “<div align=»right»>”, где содержится непосредственно сам текст новости и её заголовок. На выходе этого модуля имеем:
Вообще модуль Loop циклически перебирает каждый item rss-фида, применяя к его элементам какие-то модификаторы или производя определенные действия с данными. Внутри Loop вы можете размещать модификаторы строк или элементы из раздела Sources, для этого необходимо перетащить модуль непосредственно на Loop блок. При этом опция «emit result» – перезапишет заново все содержимое rss-ленты, а «assign results to» – направит вывод результатов в какой-то из item`ов, и не повлияет на существующие данные.
3. Rename — модуль переименования и копирования.
Чтобы на выходе получить RSS-фид нужно, чтобы он имел хотя бы 2 item`а: title (заголовок) и description (описание)… для их создания я и использую этот модуль копируя содержимое item`а content, полученного на выходе модуля Fetch Page, в item title, а затем переименовывая item content в item description… На выходе получаем фид с двумя item`ами, что нам и было нужно:
4. Regex.
На выходе Rename мы получили фид с двумя item`ами, которые имеют абсолютно одинаковое содержимое, которое раньше являлось содержимым item`а content и включает как полный текст новости так и заголовок новости… Дальше нам нужно сделать так, чтобы item title содержал только заголовок новости, а item description содержал только текст новости без заголовка… Вот тут мы и воспользуемся модулем Regex, который позволяет оперируя регулярными выражениями легко вычистить содержимое item`ов, оставив в них только нужный нам текст. Для операции “очистка” я задал в модуле Regex три правила:
-
заменить в item`е title: “^<h3 class=»title»>([^<]*).*” на “$1”, где “$1” – это как раз то, что находится в первом выражении в круглых скобках; этим правилом я заменяю всё содержимое item`а title на то, что находиться в нем между “<h3 class=»title»>” и “<”, после чего в нем остается только текст заголовка новости, чего собственно мы и добивались…
-
заменить в item`е description: “^<h3 class=»title»>[^<]*</h3>” на – “пустой текст”; этим правилом я просто затираю содержимое item`а description, находящееся в нем между “<h3 class=»title»>” и «</h3>”, то есть убираю из него заголовок новости, который в описании новости мне не нужен…
-
заменить в item`е description: “</p>.*$” на “</p><div align=»right»><small>Источник-<a href = ‘http://allboxing.ru’>Allboxing.ru</a> </small></div>”; этим правилом я подписываю внизу каждой новости ссылку на её источник…
Кроме того, в модуле Regex для каждого правила у меня выставлены чекбоксы “s” и “i”. При необходимости могут быть выставлены чекбоксы “g”, “i”, “s”, “m” – это т. н. модификаторы:
-
“g” – если не выставлен этот чекбокс, то замена происходит только в одном (первом) вхождении (например, если вы хотите заменить в слове “мамашка” буквы “м” на буквы “к” и не поставите чекбокс, то заменится только первая буква и получится “камашка”, а вот с выставленным чекбоксом вы получите как раз то чего и ожидали

-
“i” – если этот модификатор используется, символы в шаблоне соответствуют символам как верхнего, так и нижнего регистра
-
“s” – если данный модификатор используется, метасимвол «точка» в шаблоне соответствует всем символам, включая перевод строк; без него — всем, за исключением переводов строк. Этот модификатор эквивалентен записи /s в Perl.
Подробнее о модификаторах
Подробнее о регулярных выражениях и
Итак на выходе после очистки item`ов получаем:
…то есть получаем то что хотели – item title содержит только заголовок новости, а item description только текст новости без заголовка и ссылку на главную страницу первоисточника…
Бесплатная регистрация домена в зонах com.ru, net.ru, pp.ru
2nd Январь 2008. Рубрики: Бесплатный домен. 7 коммент..
Если уж делать какой-то сайт то думаю понятно, что для вашего сайта домен необходимо получить независимый от хостинга… Способ, который я ниже опишу, позволяет вашему сайту находится на любом платном или бесплатном хостинге и при этом всегда сохранять имя сайта yourname.net.ru (com.ru, net.ru, pp.ru) совершенно бесплатно. Это позволяет при переезде с одного хостинга на другой не потерять своих пользователей из-за смены названия сайта с, например, yourname.narod.ru на yourname.onep.ru.
1) Регистрируемся в базе :
Идём на сайт , далее по ссылке , выбираем «Раздел для зарегистрированных клиентов», далее «Веб-формы для
регистрации физических лиц». Выбираем себе ник (уникальный идентификатор), вводим все необходимые паспортные данные о себе и т.д… Далее необходимо выбрать себе службу технической поддержки… Для этого сначала регистрируем её пройдя по предложенной для регистрации ссылке и введя там те же данные и тот же идентификатор что вводили предже (т.е. выбираем в качестве техподдержки самого же себя). Далее выбираем контактное лицо службы технической введя опять же свой выбранный ранее ник (уникальный идентификатор). Далее появится что-то вроде «В результате работы с интерфейсом были собраны сведения для занесения в базу данных РосНИИРОС по следующим объектам:….»… Необходимо ввести свой e-mail и нажать кнопку «Зарегистрировать объект». В результате на экран выводится сообщение, что объекты поставлены на обработку, и что после завершения обработки будет прислано уведомление.
Дальше нужно ждать и через некоторое время на ваш e-mail приходит уведомление о внесении данных в базу РосHИИРоса.
2) После получения такого письма можно считать себя зарегистрированным…. теперь можно переходить непосредственно к регистрации домена войдя как зарегистрированная персона в .
Там в форме для регистрации нового домена вводим:
а) желаемое имя будущего домена (бесплатно можно зарегистрировать домен третьего уровня в зонах NET.RU, ORG.RU, PP.RU), перед этим нужно проверить не зарегистрирован ли этот домен уже на кого-то… это можно сделать воспользовавшись … вводим там название будущего домена и смотрим… если информации про него никакой нет значит можно регистрировать его на себя… иначе нужно придумывать новое имя домена…
б) descr (описание домена на английском языке)
в) comp-d (описание домена для РосНИИРОС на русском языке, для доменов третьего уровня)
г) nserver (DNS-сервера) — здесь необходимо ввести DNS-сервера хостера у которого мы будем распологать свой сайт… если хостинга у вас нет, то можно воспользоваться услугами бесплатного хостинга, например , зарегистрировавшись на хостинге заходим в панели управления вашим аккаунтом (Cpanel`и) в раздел «Паркованные домены» где вводим название будущего домена и жмем припарковать… Припарковать будущий домен на хостинге необходимо до регистрации домена в базе РосНИИРОС, иначе при регистрации проверка nserver (DNS-сервера) не будет пройдена и домен не будет зарегистрирован… Итак припарковав домен вводим в разделе nserver не менее двух DNS-серверов своего хостера (в случае с вписываем:
ns1.perslab.com
ns2.perslab.com)
3) Жмем «Зарегистрировать домен».
Руководство… Установка WordPress на хостинг
17th Декабрь 2007. Рубрики: WordPress, Хостинг. 2 коммент..
Вот .. как и обещал сегодня расскажу об особенностях установки на хостинг…
Сам я при устанавке руководствовался инструкциями найденными в сети на следующих ресурсах: , , .
Ниже приведу основные этапы установки:
1. В панелях многих хостингов уже заложена функция автоматической установки WordPress. Например, cPanel (должен быть установлен пакет Fantastico). Но если данной функции нет, то устанавливать придется вручную. Тогда идем на хостинг и в cPanel`и выбираем пункт «Базы данных MySQL» и создаем базу MySQL и пользователя базы с паролем.
Первое правило: ваш блог будет работать только в кодировке UTF-8. Все остальные кодировки
не позволят корректно работать вашему блогу из-за того, что в WordPress включена поддержка AJAX.
Открываем phpMyAdmin. Дальше нам нужно выбрать нашу базу данных и перейти на закладку «Операции».
Внизу вы увидите выпадающий список «Сравнение», где нужно выбрать «utf8_general_ci». После этого жмем «ОК».
Теперь все новые таблицы в этой базе данных по-умолчанию будут создаваться в «utf8_general_ci», что собственно и нужно. Теперь, если какой-то плагин будет создавать свою таблицу, она автоматически будет создаваться в нужной кодировке.
Внимательно отнеситесь к этому пункту, поскольку большинство ошибок в работе блогов на WordPress кроется именно в неверно выбранной кодировке. Очень
часто хостер (сервер) предоставляет базу данных MySQL в кодировке cp1251 (windows-1251). Из-за того, что ваш блог всегда будет работать в UTF-8, то база данных может неверно отображать некоторые символы (часто буквы «и» и
«ш»), будет неверно работать сортировка и поиск по сайту. Кроме этого вы не сможете делать корректный бэкап (резервное копирование).
Если версия MySQL у хостера больше либо равна 4.1, то ваша база данных может работать в кодировке utf8. Скорее всего, ваш хостинг позволит корректно установить эту кодировку, поэтому перекодирование не нужно. Если же после установки WordPress’а вы заметили ошибки, связанные с неверным отображением символов, то скорее всего база банных не позволяет корректно работать в utf-8, и следовательно, вам нужно включить перекодирование. Подробнее о перекодировании можно прочитать .
2. Идем на русский сайт и скачиваем установочный файл. Распаковываем его. Находим файл wp-config-sample.php и переименовываем его в wp-config.php – в нем будет находиться основная информация о конфигурации нашего хостинга. Находим в нем строчки:
define(‘DB_NAME’, ‘имя базы’); // Название базы данных
define(‘DB_USER’, ‘имя пользователя’); // Пользователь для MySQL
define(‘DB_PASSWORD’, ‘пароль’); // Пароль пользователя для MySQL
define(‘DB_CHARSET’, ‘ ‘); // Кодировка базы данных
define(‘DB_COLLATE’, ‘ ‘); // Кодировка, в которой хранятся данные
Меджу ‘ ‘ необходимо вписать свои настройки. При этом необходимо учитывать, что на некоторых хостингах к имени базы и имени пользователя для MySQL добавляется еще префикс имени пользователя хостинга в таком виде — имя пользователя_имя базы MySQL.
Про выбор кодировки говорилось выше, поэтому последние две строчки заполняем следующим образом:
define(‘DB_CHARSET’, ‘utf8′);
define(‘DB_COLLATE’, ‘utf8_general_ci’);
Сохраняем полученный файл.
Важное замечание: при редактировании файла wp-config.php лучше воспользоваться не Блокнотом, а редактором (как оказалось, обычный Блокнот некорректно сохраняет данные в UTF-8, что может вызвать проблемы).
3. Дальше необходимо закачать все файлы WordPress на хостинг. Это можно сделать двумя путями:
3.1 Можно с помощью FTP-клиента закачать все файлы в папку public_html на сервере, но на медленном канале процесс может занять довольно много времени, из-за того, что будет закачиваться много мелких файлов.
3.2 Если у вашего хостера сPanel, то в ней есть «Файл-менеджер». Тогда можно запаковать ранее распакованные файлы обратно в архив и закачать архив в папку public_html на сервере и распаковать архив уже непосредственно на сервере. Закачать архив можно опять-таки с помощью FTP-клиента или непостредственно из «Файл-менеджера»… там есть кнопка «Закачать». После того как закачали переходим в «Файл-менеджере»к нашему файлу-архиву и выделяем его, а затем нажимаем «Распаковать». Желательно чтобы содержимое папки WordPress после распаковки оказалось в корне директории public_html, тогда чтобы открыть ваш блог достаточно будет в браузере ввести адрес «http://ваш_домен«, если же нет, то чтобы открыть в браузере ваш блог нужно будет вводить адрес вида «http://ваш_домен/путь_к_папке_в_которой_расположен_файл_WordPress`а_index.php«.
4. Устанавливаем права доступа на каталог /wp-content/uploads/ «777» или «755» (зависит от хостинга), то есть права разрешающие запись. Установка прав может быть выполнена с помощью FTP-клиента или из «Файл-менеджера» сPanel`и. Если такого каталога нет то создаем его.
5. Открываем в браузере http://ваш_домен/wp-admin/install.php (если WP переписан в корень public_html, если нет, то прописываем нужный путь). Вводим название своего блога (Title) и свой e-mail. Нажимаем «Далее» и на следующей странице будет указан наш логин (admin) и пароль для доступа в админку блога.
Кроме того, после установки, WordPress вышлет логин и пароль на указанный вами адрес…
6. Идем в панель управления блогом http://ваш_домен/wp-admin и вводим полученные имя и пароль…
(далее…)
WordPress_2 Бесплатный Хостинг_1
14th Декабрь 2007. Рубрики: WordPress, Хостинг. Прокомментировать.
Ну вот наконец-то завершил работы по установке блога на движке на бесплатный хостинг… Со второй попытки… Результат виден здесь.
Сперва пытался запустить его на бесплатном хостинге , однако попытки эти по неведомым мне причинам оказались тщетными… Поэтому выбрал другой бесплатный хостинг , где предлагают неограниченное дисковое пространство под проект, нет ограничений на объемы базы данных, присутствует поддержка PHP, Perl, CGI, Python, WAP, SSI, MySQL, Cron, SSL… взамен требуется повесит рекламу Goolge AdSense……….. И… О, чудо! — Всё заработало…хвала господу!
Позже напишу об особенностях установки и о бесплатной регистрации домена третьего уровня в зоне RU…
Мой блог находят по следующим фразам
- установка wordpress на сайт
- регистрации
- как работать мануал wordpress
- как убрать лишнее в слове регулярным выражением
- Руководство по WordPress
Мой блог находят по следующим фразам:
• Yahoo Pipes полный RSS
• как работать с pipe
• как pipes очистить текст
• gigabyte u8000 как
• Одна из лучших программ для просмотра ТВ
• бесплатный сервис по сжатию трафика

