Перейти к тексту

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

При первом входе в developerWorks для Вас будет создан профиль. Выберите информацию отображаемую в Вашем профиле — скрыть или отобразить поля можно в любой момент.

Вся введенная информация защищена.

  • Закрыть [x]

При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

Вся введенная информация защищена.

  • Закрыть [x]

Использование API сервиса Technorati

Автоматизация поиска в блогах

Брайан M. Кэри, консультант по информационным системам, Triangle Information Solutions
Photo of Brian Carey
Брайан Кэри (Brian Carey) является консультантом по информационным системам, специализирующимся на Java, Java EE, PHP, Ajax и смежных технологиях. Микроблог Брайана доступен по адресу http://twitter.com/brianmcarey.

Описание:  Technorati представляет собой сервис для классификации блогов, позволяющий пользователям искать интересующие их записи в практически всех блогах в Интернете. Подобно большинству сервисов Web 2.0, Technorati во-первых предоставляет API для автоматизации использования своих функций, а во-вторых, базируется на принципах REST. Прочитав эту статью и выполнив приведенные в ней примеры, вы научитесь использовать API Technorati максимально эффективным образом.

Дата:  09.12.2009
Уровень сложности:  средний PDF:  A4 and Letter (33 KБ | 9 страница)Загрузить Adobe® Reader®
Активность:  2454 просмотров
Комментарии:  


Что такое Technorati?

Перед тем, как переходить к рассмотрению самого сервиса, следует пояснить, что такое блогосфера.

Термин "блогосфера" можно часто услышать от журналистов, а также от увлекающихся компьютерами людей. Под ним понимается конкретный сегмент Web, на страницах которого их авторы (блоггеры) излагают свои идеи, размышления, увлечения и помещают ссылки на другие ресурсы. Базовый термин "блог" является ничем иным, как сокращением от "Web log" (online-дневник).

Критерии поиска

Часто встречающиеся аббревиатуры

  • API: программный интерфейс приложений
  • HTTP: протокол передачи гипертекста
  • REST: передача репрезентативного состояния
  • URL: универсальный локатор ресурса
  • XML: расширяемый язык разметки

В настоящее время существуют ряд сервисов, позволяющие вести блоги даже людям, не обладающими специальными техническими навыками. Например, WordPress предоставляет обычным пользователям, не занимающимися разработкой программного обеспечения, такие средства, как визуальные компоненты, темы и шаблоны, для создания достаточно сложных блогов. Благодаря подобным сервисам число блогов и их авторов растет с огромной скоростью. По данным blogherald.com в прошлом году во всем мире насчитывалось почти 200 миллионов блогов. На сегодняшний день, блогосфера является основным источником новостей о событиях, происходящих во множестве стран.

Поскольку блогосфера содержит такой колоссальный объем уникальной информации, невольно напрашивается вопрос: где и каким образом она классифицируется, помечается тегами и обрабатывается в процессе поиска?

Ответ на этот вопрос дает сервис Technorati: "Technorati собирает, классифицирует и делает доступным содержание публичного общения в Интернет". По сути, данный сервис представляет собой Google для поиска в блогосфере. Журнал Time охарактеризовал его следующим образом: "если Google является справочником для Web, то Technorati постепенно становится его кофейней" (ссылки на пресс-релиз Technorati и статью в Time приведены в разделе Ресурсы).

Сервис Technorati находится по адресу http://technorati.com. В верхней части главной страницы вы увидите приятную зеленую строку поиска с надписью "Search the blogosphere..." (поиск в блогосфере). Введите в ней "Obama" и нажмите на увеличительное стекло справа. В результате вы получите список избранных статей в блогах, в которых упоминается президент США.


API Technorati

Web-сайт Technorati предоставляет широкие возможности для поиска статей в блогосфере. Однако, как Web-разработчику, вам может потребоваться автоматизировать данный процесс поиска, например, добавить функции на вашу Web-страницу, позволяющие ее посетителям просматривать информацию, найденную в блогосфере на основе их собственных критериев поиска.

Эти возможности можно реализовать при помощи программного интерфейса Technorati. Подобно многим другим API в Web, он следует принципам архитектуры REST.

Что такое REST?

Аббревиатуры REST означает "передача репрезентативного состояния" (Representational State Transfer). Подробное рассмотрение всех аспектов данной архитектуры выходит далеко за рамки этой статьи, однако его можно найти в других публикациях на сайте IBM developerWorks (см. Ресурсы). Для понимания материала, приведенного ниже, достаточно знать, что REST предоставляет средства для доступа к информации и ресурсам при помощи простых запросов по протоколу HTTP.

Работу по принципам REST можно представить себе следующим образом: для получения некоторого информационного объекта предметной области достаточно просто отправить запрос по нужному URL. В рамках данной статьи этого достаточно. Кроме того, REST можно рассматривать в качестве упрощенного Web-сервиса, но будьте осторожны: подобная точка зрения может вызвать жаркие дебаты в определенном кругу людей.

Возвращаясь к теме данной статьи, API Technorati – это не что иное, как сервис-REST, позволяющий пользователям обращаться по специальным URL, указывая в них критерии поиска, и получать в ответ набор статей из блогосферы, удовлетворяющих этим критериям. Как разработчик, вы также можете воспользоваться этой возможностью, динамически преобразовывая запросы от пользователей вашего Web-приложения в запросы к блогосфере, в URL которых представлены все критерии поиска в понятном для API формате.

Начало работы: простой пример

Рассмотрим пример, приведенный в листинге 1:


Листинг 1. Пример простого поискового запроса
        
http://api.technorati.com/search?key=xxxx&query=Obama

Как видите, это достаточно простой URL, включающий только два параметра.

Следует отметить, что целевая функция API Technorati указывается после последней косой черты (в данном случае это search). Таким образом, при обработке этого запроса REST будет выполнен поиск в блогосфере.

Первым параметром запроса является ключ, являющийся уникальным для каждого пользователя (разумеется, реальный ключ отличается от строки xxxx). Для получения собственного ключа необходимо зарегистрироваться в сервисе Technorati, но, к счастью, это достаточно просто и бесплатно. С другой стороны, это означает, что вы не сможете просто скопировать данный URL в адресную строку браузера и увидеть результаты поиска. Перед этим необходимо запросить собственный ключ и подставить его вместо xxxx.

Второй параметр представляет собой критерий поиска. Как и ранее, поиск осуществляется по ключевому слову Obama.

Заменив строку xxxx на значение собственного ключа, можно обратиться по данному URL в браузере и получить результаты поиска. При этом внешний вид страницы зависит от вашего браузера и его версии. Как бы она не выглядела, лучше всего вызвать правой кнопкой мыши контекстное меню и выбрать пункт View Source (код страницы). В результате вы увидите документ XML, возвращенный сервисом.

Разумеется, результаты поиска могут меняться со временем, но структура документа должна выглядеть как в листинге 2.


Листинг 2. Фрагмент результатов простого поискового запроса
        
<?xml version="1.0" encoding="utf-8"?>
<!-- generator="Technorati API version 1.0 /search" -->
<!DOCTYPE tapi PUBLIC "-//Technorati, Inc.//DTD TAPI 0.02//EN" 
	"http://api.technorati.com/dtd/tapi-002.xml">
<tapi version="1.0">
<document>
<result>
    <query>Obama</query>
    <querycount>2270581</querycount>
    <rankingstart></rankingstart>
</result>
<item>
   <weblog>
      <name>Critica Pura</name>
      <url>http://criticapura.com</url>
      <rssurl>http://criticapura.com/feed/</rssurl>
      <atomurl></atomurl>
      <inboundblogs>7</inboundblogs>
      <inboundlinks>10</inboundlinks>
      <lastupdate>2009-06-21 17:13:23 GMT</lastupdate>
   </weblog>
   <title>Jib Jab Obama</title>
   <excerpt>Try JibJab Sendables</excerpt>
   <created>2009-06-21 17:13:23 GMT</created>
   <permalink>http://criticapura.com/2009/06/jib-jab-obama/</permalink>
</item>
...

Кстати говоря, на момент написания этой статьи первой строкой в результатах данного запроса фигурировала статья на иностранном (т. е. не английском) языке.

Элемент result содержит метаданные, описывающие результаты запроса, query – критерии поиска, а querycount – число статей в блогосфере, которые удовлетворяют этим критериям.

Сразу после result следуют элементы item, каждый из которых соответствует статье в блоге, выбранной в результате поиска.

Наконец, элемент weblog содержит информацию, которая относится ко всему блогу в целом, а не только к конкретной выбранной статье. Его дочерние элементы описаны в таблице 1.


Таблица 1. Дочерние элементы weblog
ЭлементОписание
name Название блога
url URL блога
rssurl URL ленты RSS (Really Simple Syndication) для данного блога
atomurl URL ленты Atom для данного блога
inboundblogs Число блогов, ссылающихся на данный
inboundlinks Общее число сайтов, ссылающихся на данный блог
lastupdate Дата и время последнего обновления блога

В таблице 2 описаны элементы, дочерние по отношению к item, которые содержат информацию, относящуюся к конкретной записи в блоге.


Таблица 2. Дочерние элементы item
ЭлементОписание
title Заголовок статьи
excerpt Краткое изложение статьи
created Дата и время написания статьи
permalink URL статьи

Основные функции API Technorati

В дополнение к мощной операции поиска, API сервиса предоставляет и другие функции, которые могут оказаться полезными в вашем приложении.

Одной из таких функций является cosmos, название которой мало что говорит о ее назначении. Она служит для поиска блогов, которые содержат ссылки на ресурс с указанным URL. Например, допустим, что вам требуется найти все блоги, которые ссылаются на статью в другом блоге по адресу http://nicole-rensmann.bookola.de/blog. Для этого достаточно выполнить следующий запрос REST: http://api.technorati.com/cosmos?key=xxxx&url=http://nicole-rensmann.bookola.de/blog. Выполнив этот запрос в браузере (предварительно подставив ваш ключ Technorati), вы получите результаты, аналогичные показанным в листинге 3.


Листинг 3. Фрагмент результатов, возвращенных функцией cosmos
        
<?xml version="1.0" encoding="utf-8"?>
<!-- generator="Technorati API version 1.0" -->
<!DOCTYPE tapi PUBLIC "-//Technorati, Inc.//DTD TAPI 0.02//EN" 
  "http://api.technorati.com/dtd/tapi-002.xml">
<tapi version="1.0">
<document>
  <result>
    <url>http://nicole-rensmann.bookola.de/blog</url>
    <weblog>
        <name>Nicole Rensmanns kleine Welt</name>
        <url>http://nicole-rensmann.bookola.de/blog</url>
        <rssurl>http://nicole-rensmann.bookola.de/blog/?feed=rss2</rssurl> 
        <atomurl>http://nicole-rensmann.bookola.de/blog/?feed=atom</atomurl> 
        <inboundblogs>6</inboundblogs>
        <inboundlinks>6</inboundlinks>
        <lastupdate>2009-06-21 17:10:52 GMT</lastupdate>
        <rank>575630</rank>
    </weblog>
    <inboundlinks>7</inboundlinks>
    <rankingstart>1</rankingstart>
  </result>
  <item>
        <weblog>
            <name>Das Datenschutz-Blog</name>
            <url>http://www.datenschutzbeauftragter-online.de</url>
            <rssurl>http://www.datenschutzbeauftragter-online.de/feed/</rssurl>
            <atomurl>http://www.datenschutzbeauftragter-online.de/feed/atom/</atomurl>
            <inboundblogs>83</inboundblogs>
            <inboundlinks>343</inboundlinks>
            <lastupdate>2009-06-20 07:22:20 GMT</lastupdate>
        </weblog>
        <nearestpermalink>http://www.datenschutzbeauftragter-online.de</nearestpermalink>
        <title>Uberblick zum Thema Netzsperren</title>
        <excerpt>der Ursula von der Leyen Sachliche Debatte uber das Thema</excerpt>
        <linkcreated>2009-05-11 04:20:01 GMT</linkcreated>
        <linkurl>http://nicole-rensmann.bookola.de/blog/?p=3293</linkurl>
  </item>
...

Формат полученного документа выглядит очень похоже на ранее показанный в листинге 2, однако имеет ряд важных отличий. В частности, в данном случае элемент weblog содержит информацию о блоге, на который ссылаются статьи из других блогов. Обратите внимание на дочерний элемент url, который в точности соответствует параметру url.

Как и ранее, в результатах присутствуют несколько элементов item. Каждый из них содержит информацию о блоге, ссылающемся на базовый блог.

Функция tag позволяет осуществлять поиск статей в блогах, отмеченных специальным тегом. Technorati использует теги для классификации статей. Авторы могут помечать свои записи в блогах одним или несколькими тегами, таким образом, указывая на их принадлежность определенном тематике.

Например, для поиска статей о рыбалке (fishing) можно использовать следующий запрос: http://api.technorati.com/tag?key=xxxx&tag=fishing. Как и ранее, вам необходимо подставить в URL значение вашего ключа Technorati. При выполнении этого запроса в браузере, результаты должны выглядеть аналогично показанным в листинге 4.


Листинг 4. Фрагмент результатов, возвращенных функцией tag
        
<?xml version="1.0" encoding="utf-8"?>
<!-- generator="Technorati API version 1.0" -->
<!DOCTYPE tapi PUBLIC "-//Technorati, Inc.//DTD TAPI 0.02//EN" 
 "http://api.technorati.com/dtd/tapi-002.xml">
<tapi version="1.0">
<document>
 <result>
  <query>fishing</query>
  <postsmatched>43655</postsmatched>
  <blogsmatched></blogsmatched>
  <start>1</start>
  <limit>20</limit>
  <querytime>3.126</querytime>
 </result>
 <item>
  <weblog>
   <name>Travel and Leisure Articles</name>
   <url>http://www.toptravelarticles.com</url>
   <rssurl>http://www.toptravelarticles.com/feed</rssurl>
   <atomurl>http://www.toptravelarticles.com/feed/atom</atomurl>
   <inboundlinks>40</inboundlinks>
   <inboundblogs>19</inboundblogs>
   <lastupdate>2009-06-21 17:06:01</lastupdate>
   <hasphoto></hasphoto>
  </weblog>
  <title>Visiting Ghana?</title>
  <excerpt>If you want to experience the culture up close</excerpt>
  <created>2009-06-21 17:06:01</created>
  <postupdate>2009-06-21 17:06:01</postupdate>
  <permalink>http://www.toptravelarticles.com/visiting-ghana.html</permalink>
 </item>
...

Как видите, результаты очень напоминают те, которые были получены выше с использованием других функций, за исключением того, что в данном случае выбранные статьи отмечены тегом fishing.

Особый интерес представляет функция toptags, которая служит для получения списка наиболее часто используемых тегов. Например, выполните в браузере следующий запрос, подставив в него ваш ключ: http://api.technorati.com/toptags?key=xxxx. В результате вы должны получить документ, схожий с показанным в листинге 5.


Листинг 5. Фрагмент результатов, возвращенных функцией toptags
        
<?xml version="1.0" encoding="utf-8"?>
<!-- generator="Technorati API version 1.0 /topptags" -->
<!DOCTYPE tapi PUBLIC "-//Technorati, Inc.//DTD TAPI 0.02//EN" 
 "http://api.technorati.com/dtd/tapi-002.xml">
<tapi version="1.0">
<document>
<result>
<limit>20</limit>
</result>
<item>
<tag>Weblog</tag>
<posts>9578863</posts>
</item>
<item>
<tag>Life</tag>
<posts>7355121</posts>
</item>
<item>
<tag>News</tag>
<posts>4638644</posts>
</item>
...

Как видите, полученные результаты интерпретируются без всяких проблем: для каждого тега указывается его имя и то, сколько раз он использовался для пометки статей в блогах.

Заключение

Technorati представляет собой Web-сайт, через который можно получить информацию о статьях, содержащихся в блогосфере. Он позволяет находить записи в блогах, удовлетворяющие указанным критериям поиска.

Кроме того, следуя негласным законам нашего времени, Technorati предоставляет API, позволяющий программно искать статьи в соответствии с заданными параметрами поиска. Работа с данным API осуществляется по принципам REST.

Использование API Technorati позволяет разработчикам Web-приложений автоматизировать процесс поиска в блогах. В частности, это позволяет добавить в Web-приложения функции, через которые пользователи смогут находить статьи, удовлетворяющие их собственным интересам.


Ресурсы

Научиться

  • Оригинал статьи: "Using the Technorati API". (EN)

  • Прочитайте статью "Основы Web-сервисов REST" (Алекс Родригес, developerWorks, ноябрь 2008 г.), в которой содержится хороший обзор базовых принципов архитектуры REST. (EN)

  • Обратите внимание на блог "Теги Technorati", в котором с практической точки зрения рассматриваются теги Technorati, в том числе их использование в статьях в вашем собственном блоге. (EN)

  • Прочитайте статью "Кто-нибудь еще ведет счет блогам в Интернете?" (Энн Эльмонд, the Blog Herald, ноябрь 2008 г.), в которой приводятся данные о числе блогов в Интернете. (EN)

  • Узнайте больше о Technorati – первом сервисе поиска в блогах, и его возможностях на сайте Technorati Media. (EN)

  • Прочитайте статью "Луч света для поиска в блогосфере" (Джереми Каплан, Time, декабрь 2006 г.), сравнивающую Technorati с кофейней для Web, в которой вы можете узнать, кто, что и где сказал. (EN)

  • Сертификация по XML корпорации IBM: узнайте, как стать сертифицированным разработчиком IBM в области XML и связанных с ним технологий. (EN)

  • В технической библиотеке XML содержится множество статей, советов, руководств, стандартов и справочников IBM Redbooks. (EN)

  • Технические мероприятия и Web-трансляции developerWorks: в этих разделах можно получить самую актуальную информацию о современных технологиях. (EN)

  • Слушайте интервью и обсуждения вопросов, интересующих разработчиков программного обеспечения, в трансляциях developerWorks. (EN)

Получить продукты и технологии

Обсудить

Об авторе

Photo of Brian Carey

Брайан Кэри (Brian Carey) является консультантом по информационным системам, специализирующимся на Java, Java EE, PHP, Ajax и смежных технологиях. Микроблог Брайана доступен по адресу http://twitter.com/brianmcarey.

Помощь по сообщениям о нарушениях

Сообщение о нарушениях

Спасибо. Эта запись была помечена для модератора.


Помощь по сообщениям о нарушениях

Сообщение о нарушениях

Сообщение о нарушении не было отправлено. Попробуйте, пожалуйста, позже.


developerWorks: вход


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


При первом входе в developerWorks для Вас будет создан профиль. Выберите информацию отображаемую в Вашем профиле — скрыть или отобразить поля можно в любой момент.

Выберите ваше отображаемое имя

При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

(Должно содержать от 3 до 31 символа.)


Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Оценить эту статью

Комментарии

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=XML
ArticleID=454803
ArticleTitle=Использование API сервиса Technorati
publish-date=12092009
author1-email=careyb@triangleinformationsolutions.com
author1-email-cc=dwxed@us.ibm.com

Теги

Help
Используйте форму поиска, чтобы найти любой контент с данным тегом в My developerWorks. Используйте ползунок, чтобы отразить больше или меньше тегов.

КнопкаПопулярные теги отображает самые распространенные теги для данной области контента (например: Java, Linux, WebSphere).

Кнопка Мои теги отображает Ваши теги для данной области контента (например: Java, Linux, WebSphere).

Используйте форму поиска, чтобы найти любой контент с данным тегом в My developerWorks. Кнопка Популярные теги отображает самые распространенные теги для данной области контента (например: Java, Linux, WebSphere). Кнопка Мои теги отображает Ваши теги для данной области контента (например: Java, Linux, WebSphere).