Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как загрузить сайт, если он блокирует твой запрос?
Форумы портала PHP.SU » » Вопросы новичков » Как загрузить сайт, если он блокирует твой запрос?

Страниц (1): [1]
 

1. Itan - 06 Октября, 2016 - 09:48:56 - перейти к сообщению
Здравствуйте! Есть на яндексе сервис по продаже автомобилей. У каждой марки есть модели, у каждой модели есть года выпуска. У каждого года выпуска своя средняя цена.

Задача: вытянуть среднюю цену на автомобиль с сайта auto.yandex.ru

Как делал я: через file_get_contents загружаю исходный код страницы, где есть средняя цена. С помощью регулярного выражения вырезаю цену.

Все работает, но если например, мне нужно узнать среднюю цену на 30 автомобилей, получается, что мой скрип грузит 30 страниц с яндекса, и яндекс блокирует. Если бы мы смотрели это в браузере, яндекс предложил бы нам ввести каптчу для дальнейшей работы. Я не знаю как делается эта блокировка - по IP я думаю. А как это обойти моему сценарию? Куда идти читать?
2. Fart - 12 Октября, 2016 - 00:45:55 - перейти к сообщению
если ты получаешь в ответ блок ( ?!?!?! Однако ): подозреваю, что стоит некая защита от спама (dos). я не рискну что-то утверждать: как именно ты сделал запрос и верно ли, что делает яндекс в ответ и прочее, но предположу, что стоит ограничение по коилчеству запрашиваемых страниц в сек.

а вот как обойти... запрашивай только ту страницу, к которой не будет "прилеплена" другая... но это, я скажу, тебе будет крайне сложно сделать

 

Powered by ExBB FM 1.0 RC1