У меня есть приложение для записки Google по некоторым ключевым словам. В таблице у меня есть список ключевых слов. Это логика, которую я использовал для удаления каждого ключевого слова с другим прокси.
foreach ($keywords as $keyword) {
$response = false;
while ($response == false) {
try {
ScrapGoogle();
} catch (Exception $e) {
$response = false;
// If false, try another proxy. I didn't included that block code here
}
}
}
Из-за этой логики я иногда получаю ошибку 503, но при ручном тестировании этого прокси (из веб-браузера) поиск Google работает. Это означает, что мне нужно остановить цикл foreach и / или while на 30 секунд. Я попытался добавить sleep () в конец обоих циклов, но мне не стало лучше. Цикл подождите 30 секунд, а затем выполните все проверки одновременно.
Нет, поскольку у меня есть система журналов, я записываю каждый запрос в базу данных, поэтому я знаю, что скрипт работает, потому что есть правильное переключение прокси. Я даже добавил уникальный прокси для каждого ключевого слова. Единственная проблема, с которой я сталкиваюсь, заключается в том, что некоторые из этих циклов не работают правильно и получают результаты для всех ключевых слов одновременно, или они очень быстро проверяют






Может быть проблема в самом
ScrapGoogle()? Вы уверены, что прокси переключается с вашим сценарием так же, как когда вы делаете это вручную? Вы можете каждый раз распечатывать прокси-сервер, к которому вы подключены, в консоли или журнале.