Ой! Мониторинг позиций в Яндексе

12
NikolaZ
На сайте с 17.12.2007
Offline
100
#11
digwnews:

Попробовал у себя, всё работает.

http://yandex.ru/ открывает этот скрипт?

Тогда дело в хостинге, но в чем ... и раньше работал.

Яндекс палит хостинг, но как?

sabotage:
NikolaZ, Яндексу достаточно проверять куки, поставленные через javascript. Если их нет, а запросов много - бан.

Эти 2 строки разве не отдают куки?

curl_setopt($ch, CURLOPT_COOKIEFILE, $user_cookie_file);

curl_setopt($ch, CURLOPT_COOKIEJAR, $user_cookie_file);

sabotage:
Это не причина проблемы, один из вариантов. Можешь сравнить куки, получаемые браузером и скриптом. Как вариант, получить куки браузером, записать в файл и попробовать отдать.

Куки, получаемые скриптом привел выше.

Вручную не разберусь.

Всего 5 файлов, это кусок первого:

@yandex[1].txt

Куки, получаемые браузером.

Такие записи:

fuid01

4d35cc351793b273.i12fmDKMWM273nHYgdvIKVyIaNuohIIh7NqRdUBAUzW-7p8dwP6G6625AiREngLq4T6aL7EUSgCsWxkKde8cHE-dxsKd5y6oFbbAA4oq2up2ypcVb2Y5_PH1gk3zKI4y

yandex.ru/

2147484752

3485287040

30880635

403804224

30146381

*

yandexuid

556295061303298486

yandex.ru/

2147484672

2092637824

30887281

3317842304

30153026

*

yabs-frequency

/3/25_U0EW78IUCJW3e1q6l7m87jmSy0001INi22hC7F0000G00/

yandex.ru/

1024

2319554304

30172901

4186797936

30152784

sabotage
На сайте с 14.02.2007
Offline
192
#12
NikolaZ:
Эти 2 строки разве не отдают куки?

CURL по определению не может получить куки, проставляемые через javascript. Соответственно и отдать не может.

И да, я уже говорил, что это не причина проблемы, а просто одна из возможных.

NikolaZ
На сайте с 17.12.2007
Offline
100
#13
sabotage:
CURL по определению не может получить куки, проставляемые через javascript. Соответственно и отдать не может.
И да, я уже говорил, что это не причина проблемы, а просто одна из возможных.

Я понимаю, что одна из причин.

Имитировать и перехватывать куки, проставляемые через javascript не получится?

D
На сайте с 09.07.2009
Offline
79
#14
NikolaZ:
Я понимаю, что одна из причин.
Имитировать и перехватывать куки, проставляемые через javascript не получится?

Да ну нет там таких куков.

Вот этот скрипт работает:

<?php

$refer ="http://ya.ru/";
$url ="http://yandex.ru/yandsearch?text=CAD&lr=35";

$user_cookie_file = $_SERVER['DOCUMENT_ROOT'].'/cookies.txt';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
curl_setopt($ch, CURLOPT_COOKIEFILE, $user_cookie_file);
curl_setopt($ch, CURLOPT_COOKIEJAR, $user_cookie_file);
$html = curl_exec($ch);
curl_close($ch);
echo $html;
?>

И проблема на 99% в ip.

NikolaZ
На сайте с 17.12.2007
Offline
100
#15
digwnews:

Вот этот скрипт работает:

У меня строка:

$user_cookie_file = $_SERVER['DOCUMENT_ROOT'].'/cookies.txt';

открывает http://ya.ru/.

строка

$user_cookie_file = $_SERVER***91;'DOCUMENT_ROOT'***93;.'/cookies.txt';

не работает.

digwnews:
И проблема на 99% в ip.

IP-адрес могут банить на время.

Пробовал новый IP-адрес. Сразу был забанен?

Палят не по IP-адресу.

Попробую взять хостинг.

D
На сайте с 09.07.2009
Offline
79
#16
NikolaZ:
строка
$user_cookie_file = $_SERVER***91;'DOCUMENT_ROOT'***93;.'/cookies.txt';
не работает.

Это серч подменил.

У меня тоже самое.

Возможно. Надо пробовать.

F
На сайте с 06.06.2008
Offline
51
#17

Вот реферер.

curl_setopt($ch, CURLOPT_REFERER, "http://www.yandex.ru");

Лично потестил на денвере и 1 шаред-хостинге. 2 строки с куками вообще можно из скрипта удалить :) Все работает без них.

Что касается прокси - достаточно 1-2 шаред хостингов с возможностью докупать айпи. Бесплатные не юзаю. Если нужно парсить выдачу в промышленных масштабах, то без платных прокси никуда.

NikolaZ - Вы для начала поставьте Денвер в полной версии с курлом на локальном компе и попробуйте ваш скрипт на нем.

У меня, как и у digwnews, заработало и на Денвере и на шареде, следовательно - должно работать в принципе. Проблема 99.9% на сервере, точнее в его настройках. Точно могу сказать, что скрипт работает на хостинге от sweb (это не реклама - констатация факта) - на нем именно все и потестил.

Возможно айпи в бане - попробуйте завтра скрипт запустить, как правило бан длится 8-12 часов.

NikolaZ
На сайте с 17.12.2007
Offline
100
#18
freesoccer:
Что касается прокси - достаточно 1-2 шаред хостингов с возможностью докупать айпи.

Это на хостинге надо ставить proxy сервер?

freesoccer:

NikolaZ - Вы для начала поставьте Денвер в полной версии с курлом на локальном компе и попробуйте ваш скрипт на нем.

Чуть позже буду ставить.

freesoccer:
Возможно айпи в бане - попробуйте завтра скрипт запустить, как правило бан длится 8-12 часов.

Возможно айпи в бане.

Но взял чистый айпи и он не работал.

F
На сайте с 06.06.2008
Offline
51
#19

NikolaZ - не прокси-сервер в прямом понимании, скорее нечто кустарное. Скрипт, через который парсите выдачу :)

Расскажу как сделал сам: у меня 1 скрипт, но лежит на разных доменах/поддоменах, которые висят на разных айпи.

С помощью этих скриптов делаете запрос к Яндексу, причем скрипты запрашиваются по очереди: сначала 1.site.ru/script.php, потом 2.site.ru/script.php и т.д.

Т.к. всего таких "прокси" у меня 10, а скрипт запускается по крону раз в минуту, получается, что запрос с 1 айпи идет 1 раз в 10 минут. Если парсить нечего, то запросы вообще не производятся. В результате с банами сталкиваюсь "крайне редко" т.к. система сама отключает забаненный айпи.

Как-то так ;)

12

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