IT24

Персональный ИТ-блог

Автоматизация перелинковки сайта

Задача: в новых статьях сайта проставлять ссылки на существующий контент. Сложность в том, что контент представляет собой словарь, в котором прописано 150 терминов. Ручная вычитка и перелинковка таких объемов очень затруднительна.

Но деваться некуда — начальство начиталось SEO-руководств и требует, чтобы ссылки на все термины были.

Пришлось искать решение.

Для этого потребовались:

  • Список терминов
  • Excel
  • Сайт morpher.ru
  • TextPipe Pro

1. Список терминов на сайте

Автоматизация перелинковки сайта. Список терминов

был скачан в формате XLS.

Автоматизация перелинковки сайта. Список терминов в файле Excel

2. Ссылка на термин формируется вида /terms/id/.

Например, термин «Апелляционная жалоба» находится по относительной ссылке /terms/3575/.

Далее — меняем все ID на ссылки.

Автоматизация перелинковки сайта. Относительная гиперссылка на термин

Т.о. получился список, где каждому термину соответствует ссылка на сайте.

3. Чтобы анкор в ссылках был в разных формах, а не только в именительном падеже и единственном числе, каждый термин необходимо просклонять. Для этого использовался сайт morpher.ru.

Автоматизация перелинковки сайта. Склонение термина на morpher.ru

Берем каждый термин и пропускаем его через соответствующую форму. Пример:

Автоматизация перелинковки сайта. Просклоненные термины

Результат — 14 вариантов текста анкора для каждой ссылки. Вариантов может быть меньше, если у термина нет формы множественного или наоборот единственного числа.

4. Создаем новый Excel-файл и добавляем в него все формы терминов (Ссылку легко дублировать с помощью CTRL+D).

Автоматизация перелинковки сайта. Просклоненные термины в новом Excel файле

На ручной прогон 150 терминов через morpher.ru у меня ушло около часа.

5. Теперь все ссылки нужно перевести в HTML-формат и сформировать регулярное выражение для поиска и замены терминов на HTML-ссылки.

Пример:

текст текст в Апелляционной жалобе текст текст

должен быть заменен на

текст текст <a href="/terms/3575/">в Апелляционной жалобе</a> текст текст

Итоговый список терминов и ссылок будет выглядеть так:

Автоматизация перелинковки сайта. Термин и ссылка в HTML-формате + регулярное выражение

Теперь проверяем регулярное выражение в Notepad++.

Автоматизация перелинковки сайта. Проверка регулярного выражения в Notepad++

Автоматизация перелинковки сайта. Проверка регулярного выражения в Notepad++

Поиск термина и вставка ссылки работает!

6. Конечно, вручную перебирать две тысячи строк, (а именно столько форм анкоров получилось из изначальных 150 терминов) чтобы найти и вставить на них ссылки — абсолютно пустая затея. Для массового поиска и замены текста есть специализированные утилиты.

Из всех подобных, мне больше нравится TextPipe Pro. Описывать досконально его не буду, т.к. принцип работы у этих программ очень схож.

Есть определенный набор фильтров, который применяется к обрабатываемому тексту. Естественно, поиск и замена осуществляется в том числе и целым списком. Для этого и состалялся список терминов в Excel файле.

Итак, открываем TextPipe Pro.

Автоматизация перелинковки сайта. Настройка TextPipe Pro

Из фильтров «Replace» выбираем «Find pattern (perl style)» и добавляем в свой список фильтров «My Filter List».

В опциях фильра переключаем на «Using these values» и нажав «Paste from clipboard» вставляем список терминов и ссылок из Excel-файла.

В колонку «Find» вставится список терминов, а в колонку «Replace» ссылка с регулярным выражением.

Автоматизация перелинковки сайта. Настройка TextPipe Pro

Ниже выбираем необходимые опции замены.

Process longest «Find» strings first — сперва будут обрабатываться длинные строки, а только потом короткие.

Replace first only — замена только первого вхождения строки.

Prompt on replace — вывод запроса перед заменой строки.

Далее переключаемся во вкладку «Зона учебного прогона» и в поле «Учебный ввод» вставляем текст в который нужно проставить ссылки.

Автоматизация перелинковки сайта. Настройка TextPipe Pro. Текст для перелинковки

7. Нажимаем на «Учебный прогон».

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

Автоматизация перелинковки сайта. Настройка TextPipe Pro. Запрос перед вставкой ссылки.

Нажимаем на «Replace» — чтобы заменить текст на HTML-ссылку, и «Skip», если найденную строку требуется пропустить.

Обработанный текст появится в поле «Учебный вывод».

Автоматизация перелинковки сайта. Обработанный текст со ссылками

Его теперь можно скопировать для дальнейшей обработки.

Ниже — фрагмент текста, который был взят для примера. Для наглядности вставил его в визуальный HTML-редактор.

Автоматизация перелинковки сайта. Обработанный текст со ссылками

В тексте было найдено 3 термина из словаря в 8-ми разных формах и на каждый вставлена ссылка.

Т.о. перелинковка делается во всех новых статьях корпоративного сайта и тратить время на вычитку текстов теперь не нужно. На фрагмент выше ушло не более минуты.

P.S. Обращаю внимание, что замену в TextPipe лучше делать как я описал (с запросом), а не в полностью автоматическом режиме, т.к. может возникать такая ошибка.

В текст анкора может вставиться две ссылки, если текст состоит из нескольких слов. Т.е. апелляционная жалоба и жалоба — это два термина и две ссылки. Но, программа сперва вставит ссылку на термин, состоящий из 2х слов, а затем, когда текст будет проходится повторно и в уже вставленной ссылке будет найдено слово «жалоба», то программа вставит другую ссылку и на него.

Чтобы так не случилось, просто при запросе пропускаем такие анкоры и ошибки не будет.