Пытаюсь спарсить с сайта все информацию о товарах. Парсить пытался без CURLа, просто через file_get_content, использовал ajax, ставил рандомное время таймаута между открытием страниц, в результате - на n-ной странице (10 - 15) получал бан по IP на сутки. Сайт несколько раз лежал от DDOSа. Возможно это как то связано с анти-DDOS системой. Слышал, что такие вещи лучше делать через CURL, только вот изменит ситуацию его использование - не знаю.
Код CURL Код (Text): $curl = curl_init(); //инициализация сеанса curl_setopt($curl, CURLOPT_URL, 'http://www.сайт.ru/projects.php'); //урл сайта к которому обращаемся curl_setopt($curl, CURLOPT_COOKIEJAR, $_SERVER['DOCUMENT_ROOT'].'/cook.txt');//сохранить куки в файл curl_setopt($curl, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT'].'/cook.txt');//считать куки из файла curl_setopt($curl, CURLOPT_HEADER, 1); //выводим заголовки curl_setopt($curl, CURLOPT_POST, 1); //передача данных методом POST curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //теперь curl вернет нам ответ, а не выведет curl_setopt($curl, CURLOPT_FAILONERROR, 1); //curl_setopt($curl, CURLOPT_PROXY, "218.246.22.98:3128"); /* curl_setopt($curl, CURLOPT_POSTFIELDS, //тут переменные которые будут переданы методом POST array ( 'name'=>'', 'searchButton'=>'get' //это на случай если на сайте, к которому обращаемся проверяется была ли нажата кнопка submit, а не была ли оправлена форма )); */ curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0'); //эта строчка как-бы говорит: "я не скрипт, я IE5" :) curl_setopt ($curl, CURLOPT_REFERER, "http://сайт.ru"); //а вдруг там проверяют наличие рефера $res = curl_exec($curl);