
TEXT-ALIGN: left" align=left>Todo usuário de internet percebe o papel que o Google representa na vida on-line. Desde o inicialmente modesto site de busca, com uma caixa de texto e dois botões, até o sofisticado Google Earth, poucos são os internautas que não usam um dos produtos Google: Gmail, Calendar, Finance, Pages, Analytics, Maps, Desktop, Talk, SketchUp, Spreadsheets... e a lista não para de crescer.
Mas mudar a maneira de como usamos a internet parece não ser suficiente para o Google, que está oferecendo cada vez mais ferramentas e APIs para que desenvolvedores possam explorar os produtos e tecnologias da empresa em suas próprias aplicações. Neste artigo, veremos como usar a Google Search API, para realizar buscas de vários tipos, obter sugestões de correção ortográfica e ler páginas armazenadas em cache, entre outras operações.
Instalação e uso
Para usar a Google Search API, basta fazer o download do kit de desenvolvimento, descompactá-lo em algum local do disco e obter uma chave. O site google.com/apis lista os passos necessários. Para obter a chave, clique no link fornecido no segundo passo (“Create a Google Account”). Como se vê, é necessário ter uma conta do Google, que pode ser criada no mesmo site (se você tem uma conta no GMail ou no Orkut, já tem uma conta no Google). Tendo a conta criada, faça o login e uma chave será enviada para seu e-mail no GMail. A chave permite a realização de até mil pesquisas automatizadas por dia.
O kit de desenvolvimento contém o JAR da biblioteca e exemplos de uso em Java, C# e Visual Basic. Além destas, pode ser usada qualquer outra linguagem que suporte web services: o kit de desenvolvimento inclui o descritor do web service publicado pelo Google (GoogleSearch.wsdl) e exemplos de requisições (no diretório soap-samples).
Em Java, basta adicionar a biblioteca googleapi.jar ao classpath, instanciar um objeto da classe com.google.soap.search.GoogleSearch e configurar nele a chave usando o método setKey(), como mostrado na Listagem 1?. A classe GoogleSearch contém métodos para busca, sugestão ortográfica e obtenção de páginas em cache, como será mostrado a seguir.
Buscas
As buscas são feitas definindo uma expressão de consulta usando o metodo setQueryString() – semelhante ao que seria feito normalmente pelo site google.com – e depois invocando o método doSearch(), que retorna um objeto da classe GoogleSearchResult. Este objeto contém os resultados da busca e algumas informações adicionais, como o tempo de busca e o total estimado de resultados. Um exemplo de uso do método doSearch() pode ser visto na Listagem 1?.
A melhor maneira de se encontrar as informações desejadas usando o Google é construir uma boa consulta. Por exemplo, buscar por Java Magazine (sem aspas) usando a API, dificilmente retornará o site desta revista como o primeiro dos resultados. Uma primeira melhoria seria ao invés de buscar separadamente os termos Java e Magazine, buscar o termo composto pelas duas palavras na ordem dada, colocando o conjunto entre aspas. Um detalhe é que, para fazer isso no programa Java, as aspas devem ser “escapadas” com o caractere “\” para que façam parte da string ao invés de delimitá-la, ou seja, a consulta seria "\"Java Magazine\"".
Se a consulta fosse feita através de um navegador web, o problema estaria resolvido. Mas o web service utilizado pela API não recebe as informações de localidade submetidas pelo navegador e sites de peso em língua inglesa, como Amazon e JavaWorld, tendem a aparecer primeiro nos resultados. Um contorno seria excluí-los manualmente dos resultados com o operador “-“, executando a consulta "\"Java Magazine\" -JavaWorld -Amazon".
Há um mecanismo mais elegante para limitar consultas. O método setRestrict() da classe GoogleSearch permite que sejam impostas restrições de idioma, de país ou de tópicos. Por exemplo, se antes de buscar por “Java Magazine” configurarmos a restrição “countryBR”, o site da JM será o primeiro resultado (veja a Listagem 1). O quadro “Restrições” mostra outras restrições suportadas.
Além do método setRestrict(), outros limitadores e termos especiais podem ser incluidos na própria expressão de consulta. Por exemplo, a consulta "Faerman site:www.javamagazine.com.br" retorna as paginas do site da JM com artigos deste autor. A lista completa de operadores suportados pela API, com exemplos de uso, pode ser vista no quadro “Operadores”.
Conhecer um pouco do funcionamento da internet também ajuda na hora de montar suas consultas. Por exemplo, para buscar documentos sobre (digamos) CMMI
intitle:\"index of\" +(\"/ebooks\"|\"/book\") +(chm|pdf|zip|txt) -inurl:htm -inurl:html lewis
Todas essas buscas são exemplificadas na Listagem 1.
Sugestões de ortografia
Quando se faz uma consulta no site do Google usando um termo incomum ou com erros de digitação/ortografia, como “javascripiti”, o Google é capaz de verificar em seu índice gigantesco que esta não é a forma mais freqüente da palavra, e educadamente sugerir: “Você quis dizer: JavaScript?”.
A mesma funcionalidade está disponível na API através do método doSpellingSuggestion() da classe GoogleSearch. Basta passar o termo como parâmetro, que será retornada a sugestão de ortografia, ou null se não houver sugestão. Por exemplo, ao buscar por “Filosofy”, é retornado o termo correto “Philosophy”, como pode ser conferido pelo exemplo da Listagem 1.
Páginas em cache
No processo de indexação de uma página, o Google armazena uma cópia
Limitações
A Google Search API é uma oferta experimental do Google, limitada a aplicações não-comerciais e (como vimos) a apenas mil consultas por dia. Não há previsão pública de se estender o serviço. Entretanto, para aplicações corporativas, existe uma API semelhante baseada no servidor de busca corporativo do Google, que é um produto à parte (veja links).
...