2010-10-29 2 views
14

Я написал программу, которая отправляет более 15 запросов в Google на каждой итерации, общая итерация составляет около 50. Для тестирования я должен запустить эту программы несколько раз. Однако, делая это, несколько раз Google блокирует меня. есть ли какие-либо способы, чтобы я мог обмануть Google, возможно, добавив задержки между каждой итерацией? Также я слышал, что Google действительно может узнать временные метки. поэтому мне нужно, чтобы эти задержки были случайными, поэтому Google не может найти от нее ответ, чтобы узнать мое поведение. также он должен быть коротким, поэтому весь процесс не займет много времени. Кто-нибудь знает что-то или может предоставить мне кусок кода в python? СпасибоКак добавить случайные задержки между запросами, отправленными в Google, чтобы избежать блокировки в python

+2

Что вы делаете, что вам нужно, чтобы зайти в Google с более чем 750 запросами за короткий промежуток времени? Есть ли способ, которым вы можете выполнять заказы, чтобы отправлять меньше запросов? – Benn

+0

Нет, я разработал систему QA. и мне нужны результаты постепенно, поэтому я должен отправлять запросы один за другим. – Hossein

+1

вы хотите обмануть Google, вы должны быть в своем уме, и даже если кто-то даст вам ответ, бот-бот получит его до вас :), и вы сказали, что это только для тестирования, почему бы не протестировать только с одним или два запроса с перерывом или что-то ???, но я дам вам подсказку Google блокировать ваш IP-адрес – mouad

ответ

50

Во-первых, Google, вероятно, блокирует вас, потому что им это не нравится, когда вы берете слишком много своих ресурсов. Лучший способ исправить это - замедлить его, а не задерживать случайным образом. Придерживайтесь 1 секунды ожидания после каждого запроса, и вы, вероятно, перестанете испытывать проблемы.

Это говорит:

from random import randint 
from time import sleep 

sleep(randint(10,100)) 

будет спать случайное число секунд (от 10 до 100).

+1

Несколько мыслей, вставляя 1 секунду ожидания после каждого запроса, увеличивают время выполнения чуть более 12 минут. Вставка в среднем 50 секунд ожидания после каждого запроса даст увеличение более чем на 10 часов. Это может быть обременительно даже для тестирования. – jball

+2

jball: Правда, и 'sleep' может принимать поплавки, поэтому номера могут быть настроены. Лично мне нравятся другие ответы лучше, чем решения этой конкретной проблемы, но это отвечает на вопрос для людей, которые могут захотеть вставить случайные задержки в что-то в будущем. – nmichaels

+0

Можем ли мы сделать это за 0,5 секунды до вчерашнего дня, я не добавил задержки, и я был заблокирован с помощью Google на мгновение. –

2

Поскольку вы не проверяете скорость Google, выясните, каким образом можно имитировать его при выполнении вашего тестирования (как @bstpierre предложил в своем комментарии). Это должно решить вашу проблему и умножить время отклика на переменные одновременно.

1

Также вы можете попробовать использовать несколько прокси-серверов для предотвращения запрета по IP-адресу. urllib поддерживает прокси по специальному параметру конструктора, httplib может также использовать прокси

 Смежные вопросы

  • Нет связанных вопросов^_^