Курилка.co.ua
Orphus RSS kurilka.co.ua

Category

Archives

Проверка обратной ссылки по данных Яндекс.Вебмастер средствами PHP

Author wmas wmas | Category Category PHP, SEO и реклама

Здравствуйте, уважаемые посетители моего блога Курилка.co.ua. Несмотря на развитие алгоритмов поисковых систем, индекс цитирования — остается актуальным. Обмен ссылками не теряет своей привлекательности, как и ухищрения в этом процессе.

В своей заметке: «Скрипт проверки наличия обратной ссылки» — я предлагал одно из решений, которое позволяет проверить наличие обратной ссылки. В тоже время, говорить, что оно позволит вам «спать спокойно» будет не правдой.

Понятно, что нам необходимо более надежное решение. Одно из таковых я и предлагаю. Компания Яндекс, идя на встречу веб-мастерам, предоставила такой сервис как Яндекс.Вебмастер. Кликнув по ссылке «Мои сайты» и авторизовавшись, вы имеете возможность получить доступ к весьма полезные данным добавленных и прошедшим подтверждение «прав на управление» сайтам. В нашем случае это «внешние ссылки на страницы сайта»: Индексирование сайта > Входящие ссылки > Внешние.

Самый простой способ проверить: имеется ли ваша ссылка на том или ином сайте, — это воспользоваться следующим адресом:

http://webmaster.yandex.ru/site/indexed/links_from.xml?host=[ID хоста]&path=*&fromhost=[хост сайта]

где ID хоста — уникальный идентификатор сайта в системе Яндекс.Вебмастер, а хост сайта — хост (домен) сайта на котором производится проверка наличия ссылки. Всё это конечно хорошо, но не столь удобно как хотелось бы.

Разработчики компании Яндекс это тоже понимаю. Потому предоставили возможность получения всех внешних ссылок в виде одного архива. Для этого нужно зайти на страницу «Настройки» (ссылка в верхнем правом углу, сразу под вашим логином). В левой колонке найдите ссылку «Выгрузка внешних ссылок» — кликаем. На открывшейся странице установите галочку «Я хочу выгружать внешние ссылки в виде архива» и кликаем «Сохранить». Архив сформируется в течение недели и в дальнейшем будет обновляться еженедельно. Адрес доступа к архиву имеет следующий вид:

http://webmaster.yandex.ru/downloads/offline_links.gz.xml?host=[ID хоста]

К слову, ссылка на архив у меня появилась несколько раньше, чем сформировался архив, так что не спешите жаловаться в службу поддержки из-за того, что архив не качается. Просто подождите ещё пару дней.

Но вот архив сформирован и мы его скачали. Для одного из моих сайтов такой архив весит 3,5 Мб, а содержащийся в нем файл все 44 Мб. Дело в том, что в нем содержатся все внешние ссылки: со всех сайтов, со всех страних — плюс адреса и тексты ссылок. Понятно, что обработка такого файла несколько затруднительна. Особенно если речь идет о том же виртуальном хостинге.

Извечный вопрос: «что делать?» — я решил путем создания php-скрипта предварительной обработки, позволивший уменьшить объем данных до вменяемых 33 Кб. Не вдаваясь в подробности, скажу лишь, что скрипт читает исходный файл ($source) и записывает обработанные данные – фрагментами, небольшими кусочками длинной в 8192 байт. Основная фишка заключается в отслеживании так называемого «переноса каретки» и отсечения обработанных данных. В результате скрипт формирует файл ($resource) из названий хостов (доменов) сайтов, разместивших ссылку на ваш сайт.

Следует учесть, что исходный файл данных предоставлен в кодировке UTF-8. Для корректной работы php-скрипта я использую mbstring функции. Если вы тоже используете сборку Денвер, для своего локального сервера, то возможно вам будет полезным знать, что для подключения этих функций вам понадобиться раскомментировать следующую строку:

;extension=php_mbstring.dll

т.е. убрать перед ней знак точки с запятой (;). Ко всему прочему, есть еще и соответствующие настройки для этого модуля. Я использовал только две из них, привожу уже с установленными значениями:

mbstring.language = Russian
mbstring.internal_encoding = UTF-8

Если не ошибаюсь, то для установки кодировки прямо в php-скрипте можно воспользоваться функцией:

mb_internal_encoding("UTF-8");

Также, стоит обратить внимание на время обработки скрипта. У меня это заняло несколько секунд, но тем не менее. Как я понимаю, за время обработки отвечает опция:

max_execution_time = 30

В данном случае – 30 секунд. Однако, можно увеличить это время и из php-скрипта используя функцию:

set_time_limit(30);

В данном случае к 30 имеющимся секунда добавляется ещё 30.

Сам же скрипт предварительной обработки данных по внешним ссылкам Яндекс.Вебмастер можно скачать здесь или здесь. Спасибо за внимание.

Publish: Суббота Янв 16, 2010

5 Responses for "Проверка обратной ссылки по данных Яндекс.Вебмастер средствами PHP"

feed for comments on this post

  • Комментарий #2551 author: Bender Reply
    publish: Понедельник Янв 25, 2010 at 1:23 пп

    Спасибо огромное за скрипт, на хостинге Джино он работает, а вот на денвере что не хочет, вылазиет такое:

    «Fatal error: Call to undefined function mb_strpos() in Z:\home\yawebmaster\www\bl_parser.php on line 13″

    Может знаете в чем проблема?

    ЗЫ Он просто обрабатывает файл, и выдает список доменов, верно? Или есть еще функции?

  • Комментарий #2555 author: wmas Reply
    publish: Понедельник Янв 25, 2010 at 3:37 пп

    2Bender: hi! Как я и говорил в заметке: Для корректной работы php-скрипта я использую mbstring функции — по всей видимости у тебя они не поддерживаются. Можно попробовать конвертировать кодировку (скажем UTF-8 в Windows-1251) и использовать стандартные функции (вроде strpos и т.п.)… но я просто не захотел с этим париться и на локали подключил соответствующую библиотеку.

    Да, скрипт просто отвильтровывает данные оставляя лишь домены ссылающихся сайтов ;)

  • Комментарий #2752 author: Dilshod Reply (subscribed to comments)
    publish: Понедельник Окт 25, 2010 at 3:19 пп

    Добрый день.
    Это что получается Я должен сам скачать файл, распоковать, прогнать по скрипту, потом поставить на сайт для проверки?

    Я правильно понял?

  • Комментарий #2768 author: wmas Reply
    publish: Вторник Дек 7, 2010 at 10:03 пп

    2Dilshod: да, так и есть.

  • Комментарий #2796 author: Mizuho Reply
    publish: Вторник Фев 15, 2011 at 7:04 дп

    А подобное с гуглом есть?


Popular links

Copyright © since 2006 Курилка.co.ua,
powered by WordPress