YQL - Yahoo Query Language

YQL é uma linguagem que permite buscas nas bases de dados do Yahoo ou em documentos especificados pelo desenvolvedor.

Uma boa maneira de entender o uso dessa linguagem é ver um pouco de código.

JS-Placemaker - geolocate texts in JavaScript é uma demonstração de como utilizar a YQL para buscar informações em uma API do Yahoo chamada Placemaker.
Dê uma olhada no código.

O exemplo usou o Placemaker, porém as outras APIs do Yahoo também podem ser buscadas.

Vamos a outro exemplo, dessa vez utilizando dados de outra API.

API do Twitter pelo Yahoo! YQL

Para quem nunca usou a API do Twitter existe um guia sobre a API.

Twitts de Usuário

Para ver alguns twitts de um certo usuário existe o método statuses/user_timeline. A entrada para ele é o ID do usuário.

Como especificado, uma requisição HTTP para esse método se parece com:
http://twitter.com/statuses/user_timeline.xml?user_id=12345

No YQL é tão simples quanto:

select * from twitter.user.timeline where id=12345

Faça o teste YQL Console

twitter

Esse exemplo utilizou a tabela do Twitter que faz parte do projeto DataTables. Projeto que reúne várias tabelas criadas por outros desenvolvedores.

Então é possivel criar novas tabelas!?

É sim! É possivel até mandar o Yahoo fazer screen scraping e retornar o resultado em JSON!

Mais um exemplo!

Digamos que eu quero fazer um widget para retornar alguns produtos do Submarino.

Cumprindo seu papel de maior e-commerce brasileiro o Submarino não dá a minima para os desenvolvedores e não possui até hoje uma API. Vamos "hackear" uma ;D

A busca pelo site é feito pelo seguinte HTTP GET: http://www.submarino.com.br/busca?q=ipod
Usaremos essa URL para buscar dados no Submarino utilizando a YQL.

A primeira parte para fazer o YQL ler documentos é simples:

select * from html where url="http://www.submarino.com.br/busca?q=ipod"

A segunda é um pouco complicada. Para entender é necessário o minimo de conhecimento sobre XPath.

Para extrair o XPath da parte desejada do conteúdo usei o Firebug, porém é possivel usar o XPather também.

No Firebug use o "Inspect" para encontrar o elemento desejado:
Firebug

Copie o XPath:
xpath

Com o XPath do elemento HTML "pai" do produto temos a chamada YQL completa.

select * from html where url="http://www.submarino.com.br/busca?q=ipod" and xpath='/html/body/div/div[2]/div/div/div/div/div/div/div[2]/div/div/div/ul/li/div/a[3]'

Abra o Console do YQL e teste. Legal! Temos uma busca de produtos no Submarino retornando XML ou JSON e aprendemos a usar o YQL com APIs do Yahoo, com APIs do DataTables e com qualquer documento da Web ;D

Como fazer um widget de ofertas do Submarino com YQL

Outros artigos relacionados ao Yahoo Open Strategy:

Yahoo! Web Services - apresentação das APIs
SearchMonkey Monkey
Yahoo! SearchMonkey

Comments

blog comments powered by Disqus

About Me