YQL + Y! Geocoding API + Google Maps

Sábado eu comecei a procurar uma casa para morar. Eu preciso de uma casa grande e sem vizinhos, assim posso fazer umas festinhas e vender minha cervejinha artesanal. A casa também precisa ficar próxima ao "busão da UEL".

O problema: nenhum site de imobiliária presta, quanto mais em Londrina.

Poucos sites de imobiliárias mostram as opções em um mapa e nenhuma das páginas que "unem os imóveis de várias imobiliárias" funcionam.

A solução: escrever código.

Com Yahoo Query Language (YQL) eu busquei as "casas para alugar" de 7 imobiliárias.
De fato essa é a parte mais complicada e demorada uma vez que cada imobiliária usa um "padrão" diferente para apresentar as informações e o trabalho aumenta ainda mais por causa da má construção de certas páginas.

Das 7 imobiliárias foi possivel extrair cerca de 100 casas para locação.

Para inserir as informações no mapa foi preciso de uma API de Geocoding. Esse tipo de serviço transforma um endereço (rua e número) em coordenadas geográficas (latitude, longitude).
Minha primeira tentativa foi usar a API de Geocoding ...

Widget do Submarino com YQL

Meu último post foi uma tentativa de explicar o funcionamento da Yahoo Query Language. No final falei da possibilidade de se fazer um Widget do Submarino com a YQL e agora volto para implementar o prometido.

YQL


Como eu disse existe um post explicando a YQL, porém aqui vai uma explicação rápida:

A YQL pode ser usada para buscar dados nas APIs do Yahoo (Flickr, Delicious, Placemaker, Maps, ...), nas APIs do DataTables (Twitter, Amazon, GeoLocation, ...) ou em qualquer outro documento da web (página HTML).

Para mostrar como a busca em um documento qualquer da web é feita, escrevi o seguinte código:

[sourcecode lang="sql" gist="123439"]
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]"
[/sourcecode]

Para testar use o console da YQL ou veja teste dessa busca. O YQL vai retornar o conteúdo pedido em XML ou JSON.

JSONP

"JSON with Padding" é uma técnica que permite o carregamento assíncrono de informações de um domínio externo.

Toda biblioteca de JavaScript que se preze possui ...

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 ...

About Me