понедельник, 1 марта 2010 г.

Скажи мне, кто твой друг, и я скажу, кто ты. Отсев неблагонадежных площадок при покупке ссылок.

Написал на досуге робота, который обходит сайты с целью поиска всех исходящих ссылок. Данная тулза очень полезна для оценки сайтов, на которых я покупаю ссылки для продвижения, так как если некий сайт без разбора ссылается на порево и прочих шлюх, то нужно обходить его стороной при размещении своих ссылок. Роботу на вход даю файл со списком подопытных сайтов, он их обходит и заносит в базу данных найденные исходящие ссылки с указанием, на какой именно странице эта ссылка, и не стоит ли она в noindex.

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

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

Распространять данный скрипт не буду, качество кода крайне низкое. Писал для себя, поэтому не заморачивался вылизыванием кода и написанием обработки различных ошибок выполнения. Я просто знаю, где какой баг, и избегаю их ))))))))Но хочу рассказать о некоторых подвохах, с которыми пришлось столкнуться.
Поначалу я вылавливал ссылки путем поиска в коде страницы фразы «href=», но это приводило к двум побочным эффектам:
1) данному критерию удовлетворяют теги <style>, так как адреса css-файлов стоят после «href=»
2) отлавливались адреса, не являющиеся ссылками, а просто присутствующие в тексте страниц, но которым предшествует “href=”Чтобы избежать этого, регулярное выражение приобрело следующий вид: preg_match_all("/<a[^>]+href=([^ >#]+)/", $page, $matches); Прошу особо обратить внимание, что между «а» и «href» может, например, быть указан css-класс, поэтому в выражении фигурирует «[^>]+».

Второй подвох. Существует возможность записывать скрипты в виде «href=javascript: …», соответственно, перед дальнейшими действиями нужно проверять, действительно ли найдена ссылка или это текст скрипта.

Третий подвох. Теги ссылок могут содержаться в тексте javascript-ов. Самый распространенный пример – счетчик liveinternet. Поэтому, каждую ссылку нужно проверять, не заключается ли она между тегами <script> и </script>.

Комментариев нет:

Отправить комментарий