Казалось бы Яндекс начинает поворачиваться лицом к пользователям, вводя давно ожидаемые операторы поиска. Так, недавно в нашем инструментарии, появился долгожданный inurl="".
Но в то же время, показывает тем же пользователям задницу. При попытке задать хоть несколько подобных запросов подряд – выкидывает на наши экраны капчу с издевающейся надписью «Вы робот?». Причём, частенько, сколько не вводи капчу, а страницы с результатом ты так и не увидишь. А уж проверить несколько страниц на проиндексированность при покупке ссылок в сапе, без километра убитых нервов и ведра матов практически невозможно.
В конечно итоге, меня это взбесило – ведь я действительно проверял страницы вручную, а не парсил. Накатал саппорту капчи Яндекса письмо – мол ваша капча взбесилась. Пришла стандартная отмазка:
Разрабатывая те или иные алгоритмы, мы тщательно анализируем запросы, которые
делают к поиску пользователи Яндекса, так как действительно не хотим
доставлять пользователям какие-то неудобства. В том случае, если скорость
и/или характер задаваемых Вами запросов нехарактерны для пользователей, наши
алгоритмы считают эти запросы автоматическими или их успешной имитацией.
Поэтому было решено восстановить справедливость подручными средствами. Варианты с прокси, антикапчой и прочими благами в данном случае попахивали идиотизмом. Прокси не напасёшься, антикапча – очень медленный вариант.
А если подумать, то всё оказалось проще. Ведь Яндекс заставляет нас пользоваться своим сервисом «для хороших роботов» - Яндекс.XML. Так и давайте пользоваться. Остаётся придумать, как использовать его для нашей задачи – безгеморойной проверки страниц в сапе.
Собственно ничего не мешает написать скрипт, который будет принимать от нас проверяемый урл, проверять его на на проиндексированность в Яндексе посредством XML, и выдавать на результат. Но этот вариант, если подумать, абсолютно нежизнеспособен. Нам придётся найти подходящую страницу в сапе, скопировать её урл в буфер, открыть страницу, где установлен наш скрипт, вписать туда этот урл, и нажать проверить.
Согласитесь, было бы гораздо лучше, если бы могли проверять страницу одним кликом. Ну так и давайте проверять. Правда в сапе такой опции нет. Ну и хрен с ней. Мы напишем свою сапу с блекджеком и XML’ем.
Итак. Когда в интерфейсе оптимизатора сапы мы жмём на ссылку YAP – нас отправляет не напрямую к яндексу, а на домен 123sdfsdfsdfsd.ru и уже оттуда редиректит на ПС. Вероятно, эта страница-прокладка используется для скрытия реального реферера, но по большому счёту это абсолютно неважно.
Важно то, что на этом домене мы можем поставить свой скрипт, который будет получать из строки запроса в $_GET урл, который мы хотим проверить. Ну и собственно проверять его проиндексированность через XML. Стоп! Ведь этот домен нам не принадлежит? А если подумать – это поправимо. Ведь в винде, есть такой файлик, как hosts.
Далее я думаю всё понятно. Идём в %windir%\system32\drivers\etc, открываем в текстовом редакторе файл hosts, и вписываем строчку 127.0.0.1 123sdfsdfsdfsd.ru, где вместо 127.0.0.1 айпишник сервера или хостинга, где вы установили скрипт. Остаётся только добавить в панели управления новый домен – тот самый 123sdfsdfsdfsd.ru, и зарегистрировать айпишник сервера по адресу http://xml.yandex.ru/ip.xml.
Что в итоге? Смотрим на схему ещё раз. Мы жмём на YAP под страницей которую хотим проверить, нас отправляет по адресу http://123sdfsdfsdfsd.ru/yandsearch?rpt=rad&text=zapros, но на этом этапе вмешивается наша ОС, и говорит, что на самом деле 123sdfsdfsdfsd.ru расположен на нашем сервере. Файл .htaccess в корне домена определяет, что запрос следует отдать нашему скрипту. Ну, а собственно скрипт делает запрос к Яндексу и отдаёт результат. Причём, заметьте! Результат мы получаем в любой(!) удобной для нас форме. Ничто не мешает нам вывести под результатом проверки страницы на проиндексированность собственно саму эту страницу, чтобы окинуть её беглым взглядом, перед покупкой на ней ссылки.
Если кто-то скажет что 1К запросов в сутки мало – идут лесом. Я не думаю, что у вас хватит терпения для ручной проверки более тысячи страниц. Ну если вам всё-таки мало – для участников рекламной сети Яндекса ограничений нет. У вас на сервере айпишников больше одного. Есть локалхост с динамическими ip. Прокси, в конце концов. Вариантов множество.
Собственно вам остаётся написать обрабатывающий скриптик – и ваши нервы и время будут спасены. Если на написание обрабатывающего скрипта времени жалко, или вы с php особо и не сталкиваетесь – можете взять мой, из традиционной иллюстрации к статье.
Сегодня в архиве-иллюстрации лежат следующие файлы:
yand.php – Собственно интерфейс скрипта. Простейший. Нужны красивости – крутите CSS cами.
Скрипт показывает количество проиндексированных страниц по запросу. Варианта может быть три:
0 – урл не проиндексирован
1 – проиндексирована одна страница (или с www или без него).
2- проиндексировано две страницы (и с www и без него).
Если страница не проиндексирована – скрипт так и пишет. Если проиндексирована – выводит title страницы.
Yandex.php – класс для работы с Яндекс.XML. Авторство принадлежит Антону Шевчуку (shevchuk.name)
.htaccess – объясняет, что нужно сделать так RewriteRule ^yandsearch?$ yand.php? [L,QSA] ))
Readme.txt – краткая инструкция.
Ну и бонус.
Mass.php - скрипт массовой проверки проиндексированности страниц. В окошко вводим список – на экран выводит результаты массовой проверки. Попутно записывает в файл not_founded.txt список непроиндексированных страниц. Для этого поставьте права 0777 на папку скрипта. Тоже использует класс Yandex.php, так что он должен лежать рядом.
Ну и главное. Не забудьте зарегистрировать свой айпишник.