1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Google Search by Image (C# Winforms)

Discussão em 'Programação' iniciada por _NA_BOA_, 14 de Novembro de 2012. (Respostas: 1; Visualizações: 1397)

  1. 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,
     
  2. 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:
     

Partilhar esta Página