IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Get Results From Google Image


Sujet :

C#

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 53
    Par défaut Get Results From Google Image
    Bonsoir,

    Depuis quelques jours je cherche un moyen de recupérer la 1ere photo renvoyée par google image pour une requete q.
    J'ai trouvé une lib d'un certain Ilan marchant a merveille jusqu'au parsing des données renvoyées par le HttpWebRequest

    Existe t'il un moyen plus simple ?
    Ou bien quelqu'un aurait une idée de la façon d'effectuer le parsing des données renvoyées ?

    Merci d'avance !!!

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 193
    Par défaut
    à googler :
    api google image
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 53
    Par défaut
    d'après ce que j'avais lu google n'a pas developpé d'API pour google image ...

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 193
    Par défaut
    pourtant le premier lien est http://code.google.com/apis/imagesearch/
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Cela dit, l'API est en voie de décomissionnement.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 53
    Par défaut
    j'ai dja vu cet article,l'api est en javascript et affiche une interface de recherche google image rt ce n'est pas du tout ce qui est recherché vu que je veux recuperer le lien de la nième image correspondant a un mot renseigné par le code de mon application.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 38
    Par défaut
    Salut

    Peux tu nous donner un exemple de données renvoyées ?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 53
    Par défaut
    comment ca un exemple ? la finalité est de recuperer le lien de la premiere image donc un url.

  9. #9
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    Citation Envoyé par Nathanael Marchand Voir le message
    Cela dit, l'API est en voie de décomissionnement.
    J'aime quand ça utilise des mots savants, mais là je veux bien une définition ! xD

  10. #10
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Ca n'est plus maintenu et ca va prochainement être retiré.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 53
    Par défaut
    en gros j'ai le même problème que la personne de ce lien :

    http://www.experts-exchange.com/Prog..._24081992.html

    lui a le problème en php mais je suis bloqué au même endroit.Une fois récupéré le contenu de la page, il faut que je puisse identifier les "tags" correspondant au nom de l'image et au lien car le code vérifie que les deux tableaux alimentés par ces deux types de données contiennent le même nombre d’éléments.

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 38
    Par défaut
    Voici un code qui me sert à télécharger certains fichiers depuis un site, je ne sais pas si ça colle parfaitement à ton problème, mais ça doit pouvoir t'aider.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    void Main()
    {
    	string url = @"http://monsite.com/mesFichiers/";
    	string destFolder = @"D:\test\";
     
    	GetFiles(destFolder, url);
    }
     
    void GetFiles(string destFolder, string url)
    {
    	string[] allowedExts = new string[] { ".pdf", ".doc", ".docx", ".xls", ".xlsx", ".dat" };
     
    	var c = new WebClient();
    	MatchCollection matches ;
    	HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
    	using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
    	{
    		using (StreamReader reader = new StreamReader(response.GetResponseStream()))
    		{
                            string html = reader.ReadToEnd();
                            Regex regex = new Regex("<a href=\".*\">(?<name>.*)</a>");
                            matches = regex.Matches(html);
                    }
    	}
     
    	if (matches.Count > 0)
    	{
    		foreach (Match match in matches)
    		{
    			if (match.Success)
    			{
    				string file = match.Groups["name"].Value;
    				string ext = Path.GetExtension(file);
    				if(allowedExts.Contains(ext))
    				{
                                            Directory.CreateDirectory(destFolder);
                                            string path = Path.Combine( destFolder , file);
                                            
                                            c.DownloadFile(new Uri(url+file), path);                                        
                                            Console.WriteLine(path);
                                    }else if(file.EndsWith("/"))//Folder
    				{
                                            var part = file.Split('/');
                                            var subFolderName = part.Last(p=> !string.IsNullOrEmpty(p));
                                            var subFolder = Path.Combine(destFolder, subFolderName);
                                            GetFiles(subFolder, url+file);
                                    }
    			}
    		}
    	}
    }

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 53
    Par défaut
    j'ai essayé d'adapter le code à la partie que j'avais déjà mais je ne récupère aucune image.
    Tu a essayé d'utiliser ton code avec google image :

    http://images.google.com/images?q={0}&ndsp={1}&start={2}

    paramètres :
    {0} = request
    {1} = startposition
    {2} = resultrequested

    tu pourrais me dire si il te renvoi bien des résultats s'il te plait ?

    Merci

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 53
    Par défaut
    http://www.codeproject.com/KB/IP/goo...earch_api.aspx

    je pense que c'est parce que les liens des images sont construits dynamiquement par du javascript.
    En local,aprés avoir recupéré le StreamReader je peux executer l'html en local.

    -Y a t'il un moyen une fois le streamReader recupéré de simuler l'execution du js afin de pouvoir travailler directement sur un code html seul ( avec les liens des images générés), car apparemment google utilise une balise <tdataImageX> où x represente l'index comme cellule contenant les infos.

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 53
    Par défaut
    Au final, je me suis rendu compte que les liens des images sont présent dans le stream reader. je pense donc que ce sont les Regex qui ne sont pas correctes :

    imagesRegex: (dyn\x2EImg\x28\x22[^\x22]*\x22,\x22[^\x22]*\x22,\x22(?<code>[^\x22]*)\x22,\x22(?<imgurl>[^\x22]*)\x22,\x22(?<width>[^\x22]*)\x22,\x22(?<height>[^\x22]*)\x22,[^\x29]*)

    dataRegex: (?<width>[0-9,]*)\s+x\s+(?<height>[0-9,]*)\s+(pixels\s+){0,1}-\s+(?<size>[0-9,]*)(k)

    totalResultsRegex: (?<upperLimit>upperLimit>(\s)*)(?<lastResult>[0-9,]*)([^=])*=(?<maxLimit>maxLimit>(\s)*)(?<totalResultsAvailable>[0-9,]*)
    et là un extrait du contenu du StreamReader :

    dyn.initialize('\x26prev\x3d/images%3Fq%3Dcapleton%26start%3D1%26hl%3Den%26ndsp%3D20%26ie%3DUTF-8%26tbm%3Disch\x26ei\x3d5GYQToerG4icOoCDjLwL',1,0);dyn.setResults([["/imgres?imgurl\x3dhttp://www.nynetnews.com/wp-content/uploads/2011/04/capleton.jpg\x26imgrefurl\x3dhttp://www.nynetnews.com/capleton-gets-ready-for-a-blazin-performance-at-reeewind/\x26usg\x3d___CJKThFRfVPt0kOA_V8z65Sw5ug\x3d\x26h\x3d360\x26w\x3d360\x26sz\x3d78\x26hl\x3den\x26start\x3d2\x26zoom\x3d1\x26itbs\x3d1","","bBD3Em1-vRlKZM:","","121","121","\x3cb\x3eCapleton\x3c/b\x3e Gets Ready for a","","","360 &times; 360 - 78k","jpg","nynetnews.com","","","http://t3.gstatic.com/images","0",[],"",1,"",[],"http://t3.gstatic.com/images?q\x3dtbn:ANd9GcSoLINupgU0t1YQicCZKxiyxDmXWjOPfE1GUER3wL58YAa2Z5B5qR3V2ww"
    qu'en pensez vous ?

  16. #16
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    Citation Envoyé par Nathanael Marchand Voir le message
    Ca n'est plus maintenu et ca va prochainement être retiré.
    Et dire que ce n'est pas encore dans le Larousse... scandale !
    J'appelle de ce pas Jean d'Ormesson !

Discussions similaires

  1. Google Image, droit image
    Par sebaaas dans le forum Droit
    Réponses: 1
    Dernier message: 04/08/2009, 08h19
  2. Statistiques google image
    Par zimage dans le forum Statistiques
    Réponses: 0
    Dernier message: 20/02/2009, 12h47
  3. Afficher des images comme sur google images
    Par java_developper dans le forum JSF
    Réponses: 8
    Dernier message: 18/09/2007, 11h03
  4. Get text from application window or other
    Par Ludo_360 dans le forum Delphi
    Réponses: 3
    Dernier message: 24/05/2007, 09h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo