2012-07-19 18 views
6

Tengo el siguiente código, y no sé cómo imprimir los enlaces de la página siguiente, ¿cómo ir a las siguientes páginas?Google búsqueda personalizada página siguiente

#!/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() 

Respuesta

6

El objeto de respuesta contiene un diccionario 'nextPage'. Puede usar esto para determinar el índice de inicio de la próxima solicitud. De la misma manera:

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

Mi proposición es agregar el siguiente parámetro. En el software actual tienes q, cx y num. Podría intentar agregar start = 10 y luego ejecutar el código.

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

URL de la primera página de resultados no tiene el parámetro de inicio. La segunda página tiene URL que contiene el parámetro start = 10. Tercera página tiene URL que contiene start = 20 ...

Buena suerte

Cuestiones relacionadas