2016-02-25 18 views
6

Tôi cần sử dụng API tìm kiếm tùy chỉnh của Google https://developers.google.com/custom-search/v1/overview. Từ trang đó, nó cho biết:Không thể nhận được kết quả hơn 100 kết quả trên tìm kiếm tùy chỉnh của Google api

For CSE users, the API provides 100 search queries per day for free. If you need more, you may sign up for billing in the Developers Console. Additional requests cost $5 per 1000 queries, up to 10k queries per day.

Tôi đã đăng ký thanh toán trong bảng điều khiển dành cho nhà phát triển. Tuy nhiên, tôi vẫn không thể truy xuất kết quả hơn 100. Tôi nên làm gì hơn? https://www.googleapis.com/customsearch/v1?cx=CSE_INSTANCE&key=API_KEY&q=QUERY&start=100

{ error: { errors: [ { domain: "global", reason: "invalid", message: "Invalid Value" } ], code: 400, message: "Invalid Value" } }

Trả lời

2

Query: Định nghĩa
https://support.google.com/customsearch/answer/1361951

Any actual user query from a Google Site Search engine, including but not limited to search engines installed on your website using XML, iFrame, or the Custom Search Element.

Điều đó có nghĩa bạn có lẽ sẽ cần phải gửi mười một truy vấn để có được hơn 100 kết quả.

GET https://www.googleapis.com/customsearch/v1?&q=QUERY&...&start=1 
GET https://www.googleapis.com/customsearch/v1?&q=QUERY&...&start=11 
GET https://www.googleapis.com/customsearch/v1?&q=QUERY&...&start=21 
GET ... 
GET https://www.googleapis.com/customsearch/v1?&q=QUERY&...&start=81 
GET https://www.googleapis.com/customsearch/v1?&q=QUERY&...&start=91 
GET https://www.googleapis.com/customsearch/v1?&q=QUERY&...&start=101 

Kiểm tra tất cả các câu trả lời và nếu errorcode400, bạn có thể dừng - có lẽ là không cần phải gửi tới (&start= trước + 10) yêu cầu.

Bây giờ bạn có thể hợp nhất câu trả lời và bắt đầu tạo trang kết quả.

Google Custom Search and Google Site Search return up to 10 results per query. If you want to display more than 10 results to the user, you can issue multiple requests (using the start=0, start=11 ... parameters) and display the results on a single page. In this case, Google will consider each request as a separate query, and if you are using Google Site Search, each query will count towards your limit.

Có thể có cách tốt hơn để làm điều này sau đó tôi đã mô tả ở trên. (Nhưng, tôi không chắc chắn về batching API calls.)

Và (cuối cùng) câu trả lời có thể cho câu hỏi của bạn: Tôi đã thực hiện nhiều thử nghiệm, nhưng tôi chưa có may mắn với start lớn hơn 100 (Tôi đã nhận được giống như bạn - <Response [400]>). Tôi đang sử dụng "khóa trình duyệt" từ dự án đã bật thanh toán của tôi. That could mean we can't get 101st, 102nd, 103rd, etc. kết quả với API CSE.

+0

Theo yêu cầu của tôi, tôi có thể thấy totalResults là 97400. Tuy nhiên, tôi không thể nhận được kết quả hơn 100 bản ghi. – Chamnap

+0

tôi nên làm gì bây giờ? – Chamnap

+0

Không chắc chắn về bạn, nhưng tôi nghĩ rằng tôi hoàn toàn nên viết lại câu trả lời của tôi. Thật là sai, xin lỗi. Và tôi không có tin vui, xin lỗi lần nữa. – galeksic

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