Сайт блокирует парсер

12
ZD
На сайте с 20.04.2011
Offline
40
3678

Пытаюсь спарсить с сайта все информацию о товарах. Парсить пытался без CURLа, просто через file_get_content, использовал ajax, ставил рандомное время таймаута между открытием страниц, в результате - на n-ной странице (10 - 15) получал бан по IP на сутки. Сайт несколько раз лежал от DDOSа. Возможно это как то связано с анти-DDOS системой.

Слышал, что такие вещи лучше делать через CURL, только вот изменит ситуацию его использование - не знаю.

Mik Foxi
На сайте с 02.03.2011
Offline
1217
#1

если там антиддос стоит - то туго вам придется, будут блокировать ваши недопарсеры.

может и курл не помочь скорее всего, потому что защиты стоят не только по кукам, но и по исполняемости js картинок и т.п.

Антибот, антиспам, веб фаервол, защита от накрутки поведенческих: https://antibot.cloud/ (8 лет на защите сайтов). Форум на замену серчу: https://foxi.biz/
ZD
На сайте с 20.04.2011
Offline
40
#2
foxi:
если там антиддос стоит - то туго вам придется, будут блокировать ваши недопарсеры.
может и курл не помочь скорее всего, потому что защиты стоят не только по кукам, но и по исполняемости js картинок и т.п.

это можно как то решить через CURL? сейчас пробовал через CURL - результат - тот же.

A
На сайте с 19.07.2010
Offline
130
#3

Хочу в магазине стырить по мелочевке, но после 10-15 ходок срабатывает сингализация, приезжают менты и стоят целые сутки. Тырю не я один, так что сигнализация всегда на стреме.

Слышал, что от сигнализации заячья лапка в кармане помогает, но не уверен.

ps: обычно для бана разницы нет, что курл, что file_get_content, что полноценный браузер.

.............
ZD
На сайте с 20.04.2011
Offline
40
#4
admak:
Хочу в магазине стырить по мелочевке, но после 10-15 ходок срабатывает сингализация, приезжают менты и стоят целые сутки. Тырю не я один, так что сигнализация всегда на стреме.

Слышал, что от сигнализации заячья лапка в кармане помогает, но не уверен.

ps: обычно для бана разницы нет, что курл, что file_get_content, что полноценный браузер.

так как он отличает пользователя от бота?

Mik Foxi
На сайте с 02.03.2011
Offline
1217
#5
ZoidbergxD:
так как он отличает пользователя от бота?

самое примитивное - куки. на повторном заходе их у вас нету, вы ведь не вставили в свой курл посылать сохраненные куки?

а вообще в хороших системах антиддоса многоступенчатая система проверок.

ZD
На сайте с 20.04.2011
Offline
40
#6
foxi:
самое примитивное - куки. на повторном заходе их у вас нету, вы ведь не вставили в свой курл посылать сохраненные куки?
а вообще в хороших системах антиддоса многоступенчатая система проверок.

в том то и дело, что ставил

Mik Foxi
На сайте с 02.03.2011
Offline
1217
#7

можно эмулировать браузер, хуманом эмулятором или аналогами.

ZD
На сайте с 20.04.2011
Offline
40
#8
foxi:
можно эмулировать браузер, хуманом эмулятором или аналогами.

хорошая идея "не изобретать велосипед". а какие аналоги существуют?

B
На сайте с 16.11.2011
Offline
16
#9

листинг того как курлом отправляешь запросы можешь дать посмотреть?

ZD
На сайте с 20.04.2011
Offline
40
#10
Bioblocker:
листинг того как курлом отправляешь запросы можешь дать посмотреть?



$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);

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий