web-dev-qa-db-ja.com

Googleに送信されるクエリの間にランダムな遅延を追加して、python

各反復で15を超えるクエリをGoogleに送信するプログラムを作成しました。反復の合計は約50です。テストのために、このプログラムを数回実行する必要があります。しかし、それを行うことにより、数回後、Googleは私をブロックします。各繰り返しの間に遅延を追加することでグーグルをだますことができる方法はありますか?また、グーグルがタイムステップを実際に学習できると聞いたことがあります。したがって、これらの遅延はランダムである必要があるため、グーグルは私の行動を学習するためのパターンを見つけることができません。また、プロセス全体にそれほど時間がかからないように短くする必要があります。誰かが何かを知っていますか、Pythonでコードを提供できますか?ありがとう

26
Hossein

まず、Googleはおそらくあなたをブロックしているでしょう。なぜなら、あなたが彼らのリソースを使いすぎると、彼らはそれを好まないからです。これを修正する最善の方法は、ランダムに遅延させるのではなく、速度を落とすことです。リクエストごとに1秒間待機すると、おそらく問題が発生しなくなります。

それは言った:

from random import randint
from time import sleep

sleep(randint(10,100))

ランダムな秒数(10〜100)スリープします。

81
nmichaels

Googleの速度をテストしているわけではないので、テストを実行するときにシミュレーションを実行する方法を見つけてください(@bstpierreがコメントで提案したとおり)。これにより、問題が解決され、同時に可変応答タイムアウトが考慮されます。

2
martineau

また、IPアドレスによる禁止を防ぐために、いくつかのプロキシサーバーを使用することもできます。 urllibは特別なコンストラクターパラメーターによってプロキシをサポートします。httplibはプロキシも使用できます

1
seriyPS