2012-07-19 34 views
6

Tôi có mã sau đây và tôi không biết cách in các liên kết của trang tiếp theo, cách truy cập các trang tiếp theo?Tìm kiếm tùy chỉnh của Google trang tiếp theo

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

Trả lời

6

Đối tượng phản hồi có chứa từ điển 'nextPage'. Bạn có thể sử dụng điều này để xác định chỉ mục bắt đầu của yêu cầu tiếp theo. Giống như vậy:

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

Đề xuất của tôi là thêm thông số tiếp theo. Trong phần mềm hiện tại bạn có q, cx và num. Bạn có thể thử thêm start = 10 và sau đó thực thi mã.

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

URL trang kết quả đầu tiên không có thông số bắt đầu. Trang thứ hai có URL chứa tham số start = 10. Trang thứ ba có URL chứa start = 20 ...

Chúc may mắn

Các vấn đề liên quan