2017-11-14 3 views
0

Ich baue gerade eine Webspinne mit Java Apache Commons. Ich kriechen grundlegende Google-Suchanfragen wie https://google.com/search?q=word&hl=enHttp Get Request - Welche Daten werden tatsächlich gesendet?

Irgendwie nach ca. 60 Abfragen ich blockiert werden, es scheint, dass sie mich als Bot erkennen und ich bekomme eine 503 Service Unavailable Antwort

nun die wichtige Rolle: Wenn ich die gleiche Seite mit Firefox/Chrome besuche bekomme ich das gewünschte Ergebnis. Wenn ich eine GET-Anfrage mit meiner Anwendung unter Verwendung des gleichen HTTP-Headers (User-Agent, Cookies, Cache usw.) mache, bin ich immer noch blockiert.

WIE hat Google wissen, ob ich über Anwendung oder Chrome-Browser bin anschließen, wenn es nur die IP ist und die HTTP-Header-Informationen wie? (Vielleicht bin ich falsch?) Gibt es weitere Parameter meine App erkennen? Etwas, das Google sieht und ich nicht?

(Vielleicht wichtig: Ich bin mit Chrome Developer Tools und httpbin.org die Header von Browser und Anwendung zu vergleichen.)

Vielen Dank

Antwort

1

Da Sie nicht festgelegt haben, wie Sie schnell die schicken 60 Anfragen nehme ich mit hoher Rate an. Deshalb blockiert Google dich. Mehrmals habe ich schnell Google-Suchen aus Chrome gemacht und nach einer Weile nach einem Captcha gefragt und blockt dann schnell danach.

Bitte beachten Sie die API auf Custom Search und diesen Beitrag zu Begriffen of Service Replacement for Google API

FAQ auf blockierten Suche: Google FAQ

+0

Danke, wahrscheinlich das ist der Grund, warum ich zunächst blockiert wurde .. noch, wenn ich mache eine einzelne Anfrage von meiner App danach werde ich immer noch blockiert, während die Benutzung des Browsers gut funktioniert .. wie unterscheidet Google zwischen den beiden? – Schnurbert

+0

Und welche Zeitspanne sollte ich zwischen einzelnen Anfragen warten .. Ich habe 5 + zufällige (5) Sekunden zuvor ausprobiert, aber trotzdem blockiert – Schnurbert

+0

Einige Referenz Links zu der Antwort hinzugefügt – chongo2002

Verwandte Themen