2016-02-25 13 views
6

Ho bisogno di utilizzare l'API di ricerca personalizzata di Google https://developers.google.com/custom-search/v1/overview. Da quella pagina, è stato detto:Impossibile ottenere risultati più di 100 risultati su google search search personalizzata

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.

Mi registro già per la fatturazione all'interno della console degli sviluppatori. Tuttavia, non riesco ancora a recuperare i risultati più di 100. Che cosa dovrei fare di più? 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" } }

risposta

2

Query: Definizione
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.

Ciò significa che si sarebbe probabilmente necessario inviare undici interroga per ottenere più di 100 risultati.

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 

controllare ogni risposta e se errorcode è 400, ci si può fermare - probabilmente non c'è bisogno di inviare successiva (&start= precedente + 10) richiesta.

Ora è possibile unire le risposte e iniziare a costruire la pagina dei risultati.

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.

Potrebbe esserci un modo migliore per fare ciò che ho descritto sopra. (Ma, io non sono sicuro di batching API calls.)

E (finalmente) possibile risposta alla tua domanda: ho fatto più di qualche test, ma non ho avuto fortuna con start superiore a 100 (mi è stato sempre lo stesso di te - <Response [400]>). Sto utilizzando la "chiave del browser" dal mio progetto abilitato alla fatturazione. That could mean we can't get 101st, 102nd, 103rd, etc. risultati con API CSE.

+0

Sulla mia richiesta, ho potuto vedere totalResults è 97400. Tuttavia, non ho potuto ottenere risultati più di 100 record. – Chamnap

+0

cosa dovrei fare ora? – Chamnap

+0

Non sono sicuro di te, ma penso che dovrei riscrivere completamente la mia risposta. È semplicemente sbagliato, mi dispiace. E non ho buone notizie, scusa ancora. – galeksic