Странности при парсинге


Dram
258

Я паршу сайт и впервые столкнулся с непонятным багом — если запустить скрипт без задержки,

то запросы идут примерно 3 раза в секунду (я купил 200 прокси, каждый запрос с нового айпи)

и примерно с 10-15 запроса начинаются пропуски — скрипт ничего не собирает и как бы перескакивает на следующие запросы, т.е. появляются дыры в данных — в базу пишутся пустые строки.

Стоит добавить usleep(300000); и все становится нормально, собирает без разрывов. (это минимальная задержка которая убирает пустые строки).

Что это может быть?

логика парсера такова:

function getPageByUrl ($url)

....
require_once '/var/www/phpQuery.php';
запрос в базу с лимитом 5000 на получения списка урлов по которым нужно пройтись

foreach ($result as $item) {
$links = $item->url;
$pars = getPageByUrl($links);

//задержка
usleep(300000);
$pq = phpQuery::newDocument($pars);
....
далее вся логика и запись в мою базу
}


-= Serafim =-

Возможно, проблема с загрузкой страницы сайта или проблема с доступностью прокси в конкретный момент.


Dram

Сайт это превое что проверил — с ним проблем нет. Да, вы правы — скорее все дело в прокси. Они вероятно все хоть и разных городов но видать раздаются или контролируются одним узлом, где есть лимит…


-= Serafim =-

Dram:
Сайт это превое что проверил — с ним проблем нет.

Бывает, что сайт недоступен в критические моменты нагрузки на сервер, если плохо оптимизировано и настроено. Потому проверка в какой-то момент не даст ничего. То есть будет парсить 1000 страниц нормально, а потом 1-2 будут недоступны.

Как вариант — складывать незагруженные страницы в отдельный файл и просто допаршивать в конце.

Вообще нет смысла в 99% случаев покупать пачку прокси, а достаточно одного — покупаете 1 впс и настраиваете свой прокси, где нет умирания и еще 10 человек не используют его в shared тарифе. Если уж парсить Яндекс, Гугл или что-то защищенное — тогда нужны пачки или просто сменить источник парсинга.

Выдачу Гугла, например, проще парсить из других поиковиков, которые используют его выдачу.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *