2017-12-04 4 views
8

Ich habe ein Skript, das Google Custom Search API verwendet, durchläuft mehrere Ergebnisseiten.Google Benutzerdefinierte Suche API Start = 100 verursacht Fehler 400

https://www.googleapis.com/customsearch/v1?key=[[KEY]]&num=10&hl=en&start=0&cx=[[CX]]&q=%22bank%22&sort=date&googlehost=www.google.com 

https://www.googleapis.com/customsearch/v1?key=[[KEY]]&num=10&hl=en&start=10&cx=[[CX]]&q=%22bank%22&sort=date&googlehost=www.google.com 

https://www.googleapis.com/customsearch/v1?key=[[KEY]]&num=10&hl=en&start=20&cx=[[CX]]&q=%22bank%22&sort=date&googlehost=www.google.com 

In allen obigen Beispielen bekomme ich richtige Antworten. Die Abfrageantwort gibt an, dass 17.900 Ergebnisse für die Suche vorhanden sind. Erreicht das Skript = 100 starten, aber:

https://www.googleapis.com/customsearch/v1?key=[[KEY]]&num=10&hl=en&start=100&cx=[[CX]]&q=%22bank%22&sort=date&googlehost=www.google.com 

I erhalten folgende Antwort (dies ist die JSON-Antwort in ein Objekt PHP umgewandelt):

stdClass Object (
     [error] => stdClass Object 
      (
       [errors] => Array 
        (
         [0] => stdClass Object 
          (
           [domain] => global 
           [reason] => invalid 
           [message] => Invalid Value 
          ) 
        ) 
       [code] => 400 
       [message] => Invalid Value 
      )) 

Dies trotz der Tatsache, dass die Ergebnisse, die ich in start = 90 Anspruch empfangen, die die nächste Seite vorhanden:

"nextPage": [ 
    { 
    "title": "Google Custom Search - \"bank\"", 
    "totalResults": "17900", 
    "searchTerms": "\"bank\"", 
    "count": 10, 
    "startIndex": 100, 
    "inputEncoding": "utf8", 
    "outputEncoding": "utf8", 
    "safe": "off", 
    "cx": "[[CX VALUE]]", 
    "sort": "date", 
    "googleHost": "www.google.com", 
    "hl": "en" 
    } 
    ] 

um mit dem API-Spielen zeigt, dass dieser ungültigen Wert Fehler genau dann, wenn der Eindruck entsteht scharf = 92. Außerdem ist dies die genaue Seite, auf der dieser Fehler bei jeder Stichwortsuche erscheint. Jede Hilfe mit dem Problem wäre willkommen. Liegt das daran, dass es sich um eine kostenlose Version von Google Custom Search handelt?

Antwort

8

Diese Informationen sind nicht leicht zu finden, und ich fand es offiziell nur an einem Ort auf google.com erwähnt. Ich fand nur eine einzige Zeile in the Custom Search JSON API docs Beschreibung des nextPage Response-Element:

Hinweis: Diese API gibt nur für die ersten 100 Ergebnissen.

Es wird nicht erwähnt, dass dies nur auf die freie API beschränkt ist. Ich habe auch Benutzerberichte gefunden, die bestätigen, dass das Limit auch dann gilt, wenn Sie sich für die Abrechnung anmelden, z. B. siehe this related SO question und the linked blog post.

OTOH the 100 queries/day limit (im Gegensatz zu den Ergebnissen Gegensatz Sie sehen begrenzt) ist gut dokumentiert, und es gibt Informationen darüber, wie das überall zu umgehen (durch für die Abrechnung anmelden, natürlich).

Verwandte Themen