Как из списка URL адресов вычленить домены и убрать их повторы с помощью Notepad++ (готовим список для Disavow links)

30 Январь, 2014

Здравствуйте, уважаемые читатели блога KtoNaNovenkogo.ru. Суть задачи какая? У меня есть список URL адресов (обратные ссылки со страниц, ссылающихся на http://ktonanovenkogo.ru), которых более 60 000. Если вы в курсе, то в поисковой системе Гугл сейчас свирепствует злой Пингвин (читайте статью про то, как выйти из под фильтра Гугл Пингвин).

Есть такой инструмент отклонения ссылок в Google, как Disavow links. Когда я писал ту статью, то одни из читателей прислал мне выгрузку из Сео сервиса Ahrefs со всеми Урлами страниц, которые ссылаются на мой блог. Огромное ему за это спасибо.

Как загрузить в Disavow links список всех ссылок на сайт


Я потратил неделю на просмотр этих ссылок и составление списка для добавления в инструмент Гугла Disavow links. Получилось около тысячи доменов. Но через пару месяцев Пингвин меня клюнул еще сильнее (еще половина трафика с Google ушла в небытие).

Поэтому сейчас решился на крайние меры — добавить в этот список вообще все обратные ссылки. Сделать это напрямую не получается, ибо подобный список в формате txt весит около десяти мегабайт, а сервис Disavow links позволяет загружать файлы размером не более двух.

Выход я увидел в том, чтобы выделить из всего списка только доменные имена сайтов, которые на меня ссылаются, и добавить в бан-лист именно их (около трех тысяч доменов).

Данная задача разбивается на несколько этапов. Выделить и оставить в списке из всех Урл адресов только ту часть, где прописано доменное имя. Если помните, то в статье про URL адреса, а так же относительные и абсолютные ссылки, я рассказывал про их устройство. Например, ссылка на эту страницу (ее Урл — универсальный идентификатор ресурса) выглядит так:

http://ktonanovenkogo.ru/voprosy-i-otvety/kak-iz-spiska-url-adresov-vychlenit-domeny-i-ubrat-ix-povtory-s-pomoshhyu-notepad-gotovim-spisok-dlya-disavow-links.html

В моем случае это был подобный список:

Мне же нужно оставить от этого URL адреса только домен:

ktonanovenkogo.ru

Т.к. в списке много ссылок с одного и того же домена, то потом нужно будет удалить все дублирующие строки. Ну и в строке с каждым доменом, в самом ее начале, нужно добавить «domain:», чтобы получилось так:

domain:ktonanovenkogo.ru

Список для Disavow links получился в таком виде:

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

Поэтому я решал данную задачу исключительно с помощью возможностей текстового редактора Notepad++ с его богатейшим функционалом и кучей полезнейших плагинов.

Как в Notepad++ удалить http:// и символы после определенного знака


Итак, сначала я выделил столбец с Урлами доноров в файле Excel и скопировал их в буфер обмена (кстати, на копирование ушли минуты, а не секунды, ибо объем был очень большой). После чего вставил его на новую страницу в Notepad++.

Сначала я избавился от http:// и https:// во всех строках. Для этого открываете в Нотепаде из верхнего меню пункты «Правка» — «Заменить» (можно просто нажать на Ctrl+H). В верхнее поле вставляете http://, а нижнее оставляете пустым.

Жмете на кнопку «Заменить все». Потом в верхнее поле вместо http:// вставляете https:// и опять жмете на эту же кнопку. Получилось примерно так:

Следующей нашей задачей будет удалить в Notepad++ после определенного символа (первого слеша (/)) все, что там будет стоять. Для этого опять же жмете на Ctrl+H. Переходим в режим «Регулярные выражения» (внизу окна), вставляем в первое поле (/.+)$ (если вам нужно будет после другого символа все удалить, то вставьте его вместо слеша), второе поле «Заменить на» оставьте пустым и жмакайте на кнопочку «Заменить все».

В результате наш список Урлов (а сейчас уже доменов) примет такой вид:

Кое-где в конце остались слеши, поэтому опять клацнете по Ctrl+H, перейдите в обычный режим и вставьте в верхнее поле слеш, а в нижние — ничего. Ну и на кнопочку «Заменить все» нажмите.

Теперь нам нужно удалить дублирующиеся строки в Notepad++ (одинаковые домены оставшиеся после их вычленения из URL адресов). Для этого нужно воспользоваться плагином для Нотепада под названием Text FX Caracters.

Как в Notepad++ удалить дублирующиеся строки и добавить символы в начало всех строк


Если он у вас еще не установлен, то выберите из верхнего меню текстового редактора «Плагины» — «Plagin Manager» — «Show Plagin Manager».

В открывшемся окне найдите Text FX Caracters, поставьте напротив него галочку и нажмите на расположенную внизу кнопку «Install».

Теперь все строки в нашем документе нужно будет выделить с помощью CTRL+A, после чего выбрать из верхнего меню «TextFX» — «TextFX Tools» и поставить галочку в поле «+Sort outputs only UNIQUE (at column) lines». После чего опять зайти в «TextFX» — «TextFX Tools» и выбрать пункт «Sort Lines case sensitive (at column)».

В результате все дубли строк в открытом окне Notepad++ исчезнут и останутся одни лишь уникальные домены.

Но в синтаксисе файла Disavow links для доменов необходимо вначале указывать «domain:». Значит перед нами стоит очередная задача: добавить символы в начале строки в Notepad++. Решается она довольно просто.

Опять же жмакаете по клавишам Ctrl+H и переходите в режим «Регулярные выражения». В верхней строке пишите «\n» (так обозначается символ перевода строки), а в нижней — «\ndomain:»:

Жмете на кнопку «Заменить все» и получаете то, что нам и было нужно — готовый список, который смело можно будет загружать в Disavow links.

Все, спасибо за внимание.

Удачи вам! До скорых встреч на страницах блога KtoNaNovenkogo.ru

Еще:

Рубрики :Полезные программы

Комментарии и отзывы

Глеб

Спасибо большое! Очень актуально для нынешних реалий... а то уже замучался через kvk делать...

Дмитрий

Забыл как отсечь все после / Спасибо! Всем лечить пингвина.

Василий

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

Итак, код у меня получился такой

=ПСТР(A3;ЕСЛИ(ЛЕВСИМВ(A3;5)="https";9;8);НАЙТИ(«/»;A3;9) -ЕСЛИ(ЛЕВСИМВ(A3;5)="https";9;8))

работает если Урл стоит в ячейке А3, естественно протягивается хоть на 10тыс. ячеек, хоть на миллион, благо Эксель 2010 позволяет. можно было бы сделать попроще, но я решил предусмотреть вариант с https.

смысл формулы следующий — берём Урл, и начиная с 8 позиции, а в случае https с 9 позиции, выделяем из него текст в количестве символов, равным разнице между позицией первого слэша после закрывания домена и 8 (9 в случае https). проще вроде некуда, правда с ходу наверное не очень понятно 🙂

Василий

забыл сказать. domain с лёгкостью прикрепляется с помощью функции =СЦЕПИТЬ(«domain:»;ссылка на домен)

а по поводу удаления дублей — меню Данные — кнопка «Удалить дубликаты» для Эксель 2010 и элементарная сводная таблица без каких-либо заморочек в Эксель 2003

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

Ярсолав

А как «точку» и «?» убрать?

Алексей

а как перед слешем удалить?

Подписаться не комментируя