[GeeXLab] Bing, Google et Yahoo via Python



Pour enrichir le chapitre “GeeXLab et les mash up” un petit essai sur le thème: pourquoi ne pas matérialiser des requêtes de moteurs de recherche dans une scène GeeXlab ?

On fait le test grâce à
Peter Krumins pour la lib python XGoogle
Leif Hedstrom pour la lib Python Yahoo search
et au Blog Uswaretch, pour le wrapper de Bing en python

Graphiquement les résultats sont des barres proportionnelles à leur rang, entourées de keywords éventuels et disposées en spirale. On pourrait aussi jouer sur l’image qui sert de heightmap en fonction de l’importance de certains paramètres.

Pour la suite on va se demander quelle information pertinente aurait intérêt à se retrouver codée spatialement:
_les médias associés à un résultat ?
_le nombre de résultats venant d’une même url ?
_les meta keywords (snobés par Google et un peu moins par Yahoo) ?
_des notions de géolocalisation ?
_tout ce que les moteurs de recherche gardent pour eux…

Pour un début de démo nous ajoutons les lib BeautifulSoup comme parser et PIL pour créer des textures avec du texte (en attendant de trouver le bon shader pour faire ça). Il nous faudrait aussi trouver un outil pour créer des thumbnails des sites.

Bref, on est encore loin d’un méta moteur embarqué dans GeeXLab…

2 Comments

  • November 25, 2009 - 11:59 am | Permalink

    Et les librairies python pour google, yahoo et bing ne sont pas trop compliquées à utiliser ? Si t’as un tout petit bout de code qui montre une requete…

  • SPRINGER
    November 25, 2009 - 12:07 pm | Permalink

    elles ne sont pas difficiles du tout, il y a juste une différence entre les formats de réponses: séquences ou dictionnaire, la nécessité d’une ID d’API ou pas.

    from xgoogle.search import GoogleSearch, SearchError
    from yahoo.search.web import WebSearch
    from bingapi import bingapi

    q = “GeeXLab”

    yres_seq = []
    bing_dict = {}
    bres_seq = []

    gs = GoogleSearch(q)
    gs.results_per_page = 30
    results = gs.get_results()

    ysrch = WebSearch(‘YahooDemo’, query=q)
    yinfo = ysrch.parse_results()
    yres_ret = yinfo.total_results_returned
    for res in yinfo:
    yres_seq.append(res['Url'])

    bing=bingapi.Bing(‘F0C064FDAC085A47B0CA***ID_API***F0EFCF81A70E’)
    bing_dict = bing.talk_to_bing(q, sources=’web’)

    t = 0
    for res in bing_dict['SearchResponse']['Web']['Results']:
    s=bing_dict['SearchResponse']['Web']['Results'][t]['Description']
    bres_seq.append(s)
    t= t+1

  • Comments are closed.