2017-01-24 3 views
9

Ich betreibe eine Website, die verschiedene Daten im Diagramm/Tabellenformat für Menschen zum Lesen bietet. Kürzlich habe ich festgestellt, dass die Anfragen an die Website, die von Google Docs stammen, zugenommen haben. Betrachtet man die IPs und den User Agent, scheint es von Google-Servern zu stammen - example IP lookup here.Block Website Scrapping von Google Docs

Die Anzahl der Treffer liegt im Bereich von 2.500 bis 10.000 Anfragen pro Tag.

Ich nehme an, dass jemand ein oder mehrere Google Tabellen erstellt hat, die Daten von meiner Website scrappen (möglicherweise unter Verwendung der IMPORTHTML-Funktion oder ähnlichem). Ich würde es vorziehen, dass dies nicht passiert ist (weil ich nicht wissen kann, ob die Daten richtig zugeordnet werden).

Gibt es eine bevorzugte Möglichkeit, diesen Datenverkehr zu blockieren, den Google unterstützt/genehmigt?

Ich würde lieber nicht basierend auf IP-Adressen blockieren, da das Blockieren von Google-Servern sich falsch anfühlt und möglicherweise zu zukünftigen Problemen oder IPs führen könnte. Im Moment blockiere ich (den Status 403 zurücksendend) basierend auf dem User Agent, der GoogleDocs oder docs.google.com enthält.

Verkehr meist aus 66.249.89.221 und 66.249.89.223 derzeit kommen, immer mit dem User-Agent Mozilla/5.0 (compatible; GoogleDocs; apps-spreadsheets; http://docs.google.com)

Als sekundäre Frage: Gibt es eine Möglichkeit, das Dokument oder seinen Kontoinhaber zu verfolgen? Ich habe Zugriff auf die URLs, auf die sie zugreifen, aber ansonsten kann kaum etwas weitergehen, da die Anfragen anscheinend über die Google Docs-Server übertragen werden (kein Referrer, Cookies oder andere ähnliche Daten in den HTTP-Protokollen).

Vielen Dank.

Antwort

4

Das Blockieren auf User-Agent ist eine großartige Lösung, da es scheinbar keine Möglichkeit gibt, einen anderen User-Agent einzurichten und trotzdem die INPUTHTML-Funktion zu verwenden -Blätter, das ist perfekt.

Weitere Gedanken, aber wenn voll auf Verbot unangenehm scheint:

  1. Bewerten begrenzen: wie Sie sagen, Sie erkennen es meist aus zwei IP kommen und immer mit dem gleichen User-Agenten, nur verlangsamen deine Antwort. Solange die Anfragen seriell sind, können Sie Daten zur Verfügung stellen, und zwar bei einem Durchlauf, der ausreichen kann, um das Scraping zu verhindern. Verzögern Sie Ihre Antwort (auf vermutete Schaber) um 20 oder 30 Sekunden.

  2. Umleiten zu "Sie sind gesperrt" -Bildschirm oder Bildschirm mit "Standard" -Daten (d. H. Scrapable, aber nicht mit aktuellen Daten). Besser als Grund 403, weil es den Menschen sagen, dass es nicht zum Schaben und dann können Sie leiten sie den Zugriff auf den Kauf (oder zumindest einen Schlüssel von Ihnen anfordern.)

0

Sie können die Ausgabe erzwingen, indem Setzen eines Cookies beim ersten Versuch und nur dann eine Antwort liefern, wenn der Cookie vorhanden ist. Auf diese Weise werden "einfache" Importe nicht funktionieren, da in der ersten Anfrage der Cookie nicht vorhanden ist und somit von Dritten nicht gelesen werden kann.