yql128O YQL é uma API da Yahoo, que quer dizer Yahoo Query Language.

Essa poderosa API tem o objetivo de facilitar a vida dos desenvolvedores, a grande vantagem é poder encontrar muitas APIs em forma de open data table num lugar só (convergência), de um jeito simples de usar.

A linguagem é basicamente SQL Language, sim, você poderá selecionar os dados a partir de uma simples select, ou combinando com subselects, cross e etc! Incrível!

Você pode por exemplo selecionar os títulos de notícias do site da CNN e trazêlos já traduzidos para o português, numa única select. Pra isso você terá de combinar 2 Selects, uma com a API da CNN e outra com a API do google translator. Você também pode ainda, filtrar as notícias por categoria ou alguma palavra chave.

O YQL aceita Selects, Inserts, Deletes e Updates.

Tudo começa pelo console YQL, lá você poderá executar e testar todos os seus SQLs. Você escolhe o seu tipo de retorno, pode ser um XML ou JSON.

Exemplos:

Para inserir um novo tweet pelo YQL basta fazer:
insert into twitter.status (status,username,password) values (”Playing with INSERT, UPDATE and DELETE in YQL”,     “twitterusername”,”twitterpassword”)

Para buscar a timeline de um usuário no twitter faça:
select * from twitter.user.timeline where id=’riquecosta’

No próprio console do YQL é possível capturar a URL REsT da query.

O exemplo abaixo mostra como deve ser feito para buscar e exibir no html a timeline de um usuário no twitter, clique aqui pra ver o exemplo online ou clique aqui pra fazer o download.

As open data tables fazem parte de um projeto (http://www.datatables.org/), o YQL já possui diversas open data tables próprias e ainda outras data tables feitas pela própria comunidade YQL.

Mas, você pode precisar de uma data table que ainda não existe, então, você poderá fazer a sua ;)

Não sei se a americanas.com disponibiliza uma API para realizar busca em seu site, mas, vamos fazer a nossa própria para poder fazer buscas lá

Sabemos que site da americanas.com a busca é feita através da da URL http://www.americanas.com.br/busca/palavra_chave

Então, fazemos com que o YQL busque o documento HTML:
select * from html where url=”http://www.americanas.com.br/busca/corinthians”

Agora, você precisará identificar onde esses resultados aparecem nos elementos HTML, como na imagem abaixo:

Path

Copie o Xpath através do firebug, em seguida coloque no console e faça o teste!

Você terá uma query parecida com essa:
select * from html where url=”http://www.americanas.com.br/busca/corinthians” and xpath=’//*[@class="searchResultList"]‘

console

Aí é só correr pro abraço, você terá o resultado da pesquisa serializado em XML ou JSON, veja a demonstração on-line aqui ou faça o download do arquivo aqui.

Saiba mais sobre o YQL na página aqui