2010-09-02 24 views

Répondre

0

Ajoutez le paramètre rsz=8 à ce google search demonstration code, utiliser le paramètre start=... pour contrôler quel groupe de résultats que vous recevez.

Ceci, par exemple, vous donne 50 résultats:

import urllib 
import json 
import sys 
import itertools 

def hits(astr): 
    for start in itertools.count(): 
     query = urllib.urlencode({'q':astr, 'rsz': 8, 'start': start*8}) 
     url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&%s'%(query) 
     search_results = urllib.urlopen(url) 
     results = json.loads(search_results.read()) 
     data = results['responseData'] 
     if data: 
      hits = data['results'] 
      for h in hits: 
       yield h['url'] 
     else: 
      raise StopIteration 


def showmore(astr,num): 
    for i,h in enumerate(itertools.islice(hits(astr),num)): 
     print('{i}: {h}'.format(i=i,h=h)) 

if __name__=='__main__': 
    showmore(sys.argv[1],50) 
+0

La question est, pour autant que je comprends, comment obtenir * plus * de 8 résultats dans une requête. – dpq

+0

Oups, j'ai mal compris la question ... Cet article va s'auto-détruire en 30 secondes ... – unutbu

+0

D'autre part, le problème n'est pas trop difficile à résoudre ... – unutbu