2012-07-19 17 views
6

Ho il seguente codice e non so come stampare i collegamenti della pagina successiva, come passare alle pagine successive?Ricerca personalizzata Google pagina successiva

#!/usr/bin/python2.4 
# -*- coding: utf-8 -*- 


import pprint 

from apiclient.discovery import build 


def main(): 

    service = build("customsearch", "v1", 
       developerKey="") 

    res = service.cse().list(
     q='lectures', 
     cx='013036536707430787589:_pqjad5hr1a', 
     num=10, #Valid values are integers between 1 and 10, inclusive. 
    ).execute() 

    for value in res: 
     #print value 
     if 'items' in value: 
      for results in res[value]: 
       print results['formattedUrl'] 

if __name__ == '__main__': 
    main() 

risposta

6

L'oggetto risposta contiene un dizionario 'nextPage'. È possibile utilizzare questo per determinare l'indice di inizio della richiesta successiva. Così:

res = service.cse().list(
    q='lectures', 
    cx='013036536707430787589:_pqjad5hr1a', 
    num=10, #Valid values are integers between 1 and 10, inclusive. 
).execute() 

next_response = service.cse().list(
    q='lectures', 
    cx='013036536707430787589:_pqjad5hr1a', 
    num=10, 
    start=res['queries']['nextPage'][0]['startIndex'], 
).execute() 
4

La mia proposta è quella di aggiungere il parametro successivo. Nel software corrente hai q, cx e num. Potresti provare ad aggiungere start = 10 e quindi eseguire il codice.

res = service.cse().list(
    q='lectures', 
    cx='013036536707430787589:_pqjad5hr1a', 
    num=10, 
    start=10, 
).execute() 

L'URL della prima pagina di risultati non dispone di parametro di avvio. La seconda pagina ha l'URL che contiene il parametro start = 10. Terza pagina ha URL che contiene start = 20 ...

Buona fortuna

Problemi correlati