Google Search by Image (C# Winforms)

_NA_BOA_

Membro
Boas a todos,

Estou a implementar um projecto em que uma das componentes passa por uma pesquisa por imagem ao Google, retornando as n primeiras imagens.
Linguagem usada: .net C# Winforms

Resumindo os passos:
1 - Escolher uma imagem do computador. (feito)
2 - Guardar a imagem online para posterior pesquisa no Google Images. Guardada online no Picasa com a obtenção do url da mesma através da API do Google.GData. (feito)
3 - Efectuar pesquisa no google images através de código C# enviando o url obtido no ponto 2.
4 - Obter resultado, ficando com as primeiras n imagens do resultado da pesquisa.

O problema maior neste momento está em efectuar a pesquisa ao google enviando a url da imagem, pelo que li o Google tem uma nova API (CustomSearch API) que dizem já dá para isso, mas não consigo encontrar exemplos nem fazer a pesquisa que preciso.
Sei que o resultado pode ser em JSON que depois é apanhar o url e já está, mas não estou mesmo a conseguir fazer.

Qualquer ajuda é agradecida.


Cumprimentos,
 
Boa tarde,

Visto não ter ainda havido alguma ajuda e não ter conseguido lá chegar por esta via, ando a tentar outro caminho.

Efectuar um GET por código, apanhar a resposta e fazer parse para obter URL das imagens.
Claro está que tinha de surgir outro problema :(

Tenho a seguinte URL: http://images.google.com/searchbyimage?image_url=http://www.google.com/images/srpr/logo3w.png
Pondo no browser dá a página de resposta correctamente com as imagens de resultado.
Fazendo através de código, a página de resposta é a página principal do google para pesquisa.
O problema pode ser o Google ter alguma protecção para estes casos por código para não apanharem os resultados, ou o browser usa muitos GETs para lá chegar e não vou conseguir assim.
Ou então estou a fazer alguma coisa mal :D

O que estou a fazer mal? Alguem pode ajudar?

Código:
string URL1 = "http://images.google.com/searchbyimage?image_url=http://www.google.com/images/srpr/logo3w.png";
System.Net.HttpWebRequest request = null;
StreamReader responseReader = null;
string responseData = "";

try
{
    request = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(URL11);
    responseReader = new StreamReader(request.GetResponse().GetResponseStream());
    responseData = responseReader.ReadToEnd();
}
catch
{
    throw;
}
finally
{
    request.GetResponse().GetResponseStream().Close();
    responseReader.Close();
    responseReader = null;
}

txt_cmd.Text = responseData;

Obrigado a todos :cool:
 
Back
Topo