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

12
NikolaZ
На сайте с 17.12.2007
Offline
100
3800

При попытке открыть страницу Яндекса через PHP, получаю:

Moved Permanently The document has moved here.

или

Ой! запросы, поступившие с вашего IP-адреса, похожи на автоматические

HTTP/1.1 302 Found Location: http://yandex.ru/showcaptcha?retpath=http%3A//yandex.ru/yandsearch%3Ftext%

При этом http://ya.ru/ открывается.

Как Яндекс шпионит? Вижу Cookie spravka.

Но попытки через CURL отправлять Cookie, Яндекс палит.

CURL нормально отправляет Cookie?

$refer ="http://ya.ru/";

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

function br($url) {

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

return $html;

}

echo br($url);

В cookies.txt

# Netscape HTTP Cookie File

# http://www.netscape.com/newsref/std/cookie_spec.html

# This file was generated by libcurl! Edit at your own risk.

.yandex.ru TRUE / FALSE 1312378916 spravka dD0xMjc4MjUwOTE2O2k9MTc4LjYzLjk1LjE5O3U9MTI3ODI1MDkxNjEyMDQyNjc5MTtoPWZhZTgyZjJmMjNjNTM2YWQ2NTk1YTBjZWM4MDc3OWU1

У кого-нибудь есть решение?

nipler
На сайте с 04.07.2008
Offline
93
#1
NikolaZ:
Location

Сохраняйте куки, переходите по Location, распознавайте картинку через сервис и делайте запрос снова.

Быстропост – система автоматической монетизации (http://bystropost.ru/partner/248) Удобный бесплатный инструмент для вебмастера и оптимизатора (http://site-control.ru/)
NikolaZ
На сайте с 17.12.2007
Offline
100
#2
nipler:
Сохраняйте куки, переходите по Location, распознавайте картинку через сервис и делайте запрос снова.

Какие есть сервисы? Хотя такое решение не нравится.

Но все же, как Яндекс палит?

F
На сайте с 06.06.2008
Offline
51
#3
Moved Permanently The document has moved here.

У меня такое вылазило в зависимости от хостинга, где стоят прокси. Кое где есть, а кое где нет. Отчего такое разбираться не стал, ибо шаред-хостингов под прокси хватает.

Но все же, как Яндекс палит?

Чтобы не палил:

1. Юзать прокси.

2. Если делать одновременно 2-3 запроса к Яндексу с одного айпи, айпи уходит в бан, примерно часов на 8-12. Поэтому запросы с одного айпи нужно производить хотя-бы с интервалом в 1 минуту.

3. А почему у вас нет нигде:

curl_setopt($ch, CURLOPT_REFERER, $refer);

$refer есть, а CURLOPT_REFERER нет ;)

NikolaZ
На сайте с 17.12.2007
Offline
100
#4
freesoccer:
У меня такое вылазило в зависимости от хостинга, где стоят прокси. Кое где есть, а кое где нет. Отчего такое разбираться не стал, ибо шаред-хостингов под прокси хватает.

Спасибо за ответ.

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

Какой порекомендуете proxy скрипт?

А запросы слать с другого хостинга?

Выделенный айпи нужен?

Какие требования к шаред-хостингу под прокси?

freesoccer:
Чтобы не палил:
1. Юзать прокси.

Прокси брал в сети бесплатные: 58.61.156.183:80

Через URLOPT_PROXY http://ya.ru/ открывает, а http://yandex.ru/ нет.

freesoccer:
2. Если делать одновременно 2-3 запроса к Яндексу с одного айпи, айпи уходит в бан, примерно часов на 8-12. Поэтому запросы с одного айпи нужно производить хотя-бы с интервалом в 1 минуту.

15 минут не помогают.

Может вся сетка забанена?

Пробовал из 2 IP.

Это в этом месяце случилось. Раньше все работало.

freesoccer:
3. А почему у вас нет нигде:

$refer есть, а CURLOPT_REFERER нет ;)

CURLOPT_REFERER есть. Пишу туда http://ya.ru/ или http://yandex.ru/ - это нормально?

D
На сайте с 09.07.2009
Offline
79
#5
NikolaZ:
Какие есть сервисы? Хотя такое решение не нравится.

Анти-капча. Кроме такого решения существует только прокси, но с ними намучаетесь не меньше.

Вы видимо расположились на таком хосте, с котрого постоянно шлют запросы кто-то на яндекс, вот ваш ip и всегда забанен. Но ввод каптчи обходит это дело.

И насчёт прокси - бесплатные далеко не всегда проходят.

NikolaZ
На сайте с 17.12.2007
Offline
100
#6
digwnews:
Вы видимо расположились на таком хосте, с котрого постоянно шлют запросы кто-то на яндекс, вот ваш ip и всегда забанен.

Пробовал из 2 выделенных IP адресов.

Может вся сетка IP адресов забанена?

Это в этом месяце случилось. Раньше все работало.

D
На сайте с 09.07.2009
Offline
79
#7

Это странно.

Хотя в общем-то для решения проблемы это никак не влияет, всё равно нужно обрабатывать этот случай даже при обходе этой ситуации.

Парсить яндекс таким способом -самое надёжное решение.

Так что если вас всё-таки разбанят или вы возьмёте другие ip - всё равно придётся описать такой случай.

И, кстати, ваш скрипт где-нибудь нормально работает? Нарример, на локалке. А то может яндекс ждёт какие-то доп. хедеры и из-за отстутствия их выдаёт эту страницу?

NikolaZ
На сайте с 17.12.2007
Offline
100
#8
digwnews:
Это странно.
Хотя в общем-то для решения проблемы это никак не влияет, всё равно нужно обрабатывать этот случай даже при обходе этой ситуации.
Парсить яндекс таким способом -самое надёжное решение.

Это вы про ввод капчи?

digwnews:
И, кстати, ваш скрипт где-нибудь нормально работает? Нарример, на локалке. А то может яндекс ждёт какие-то доп. хедеры и из-за отстутствия их выдаёт эту страницу?

Нет не проверял.

А что в нем неправильно?

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

Конечно возможно Яндекс ждёт какие-то хедеры. Cookie может?

CURL нормально отправляет Cookie?

Вот дописано в cookies.txt

# Netscape HTTP Cookie File

# http://www.netscape.com/newsref/std/cookie_spec.html

# This file was generated by libcurl! Edit at your own risk.

.yandex.ru TRUE / FALSE 1312378916 spravka dD0xMjc4MjUwOTE2O2k9MTc4LjYzLjk1LjE5O3U9MTI3ODI1MDkxNjEyMDQyNjc5MTtoPWZhZTgyZjJmMjNjNTM2YWQ2NTk1YTBjZWM4MDc3OWU1

.ya.ru TRUE / FALSE 994429134 S

.ya.ru TRUE / FALSE 1312380094 yandex_gid 99

ya.ru FALSE / FALSE 994428827 yp

Что означают эти записи?

spravka не изменилась.

sabotage
На сайте с 14.02.2007
Offline
192
#9

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

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

D
На сайте с 09.07.2009
Offline
79
#10
NikolaZ:
CURL нормально отправляет Cookie?

Да.

Проблема я думаю не в куках.

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

12

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