2012-07-19 184 views
6

我有以下代码,我不知道如何打印下一页的链接,如何进入下一页?谷歌自定义搜索下一页

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

回答

6

响应对象包含“下一页”字典。您可以使用它来确定下一个请求的开始索引。像这样:

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

我的建议是增加下一个参数。在当前的软件中,你有q,cx和num。你可以尝试add start = 10然后执行代码。

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

第一个结果页面URL没有启动参数。第二页有包含start = 10参数的URL。第三页具有包含起始URL = 20 ...

好运