Архив

Проблемы со сбором ссылок

Две самые основные проблемы сбора ссылок в Датакол:

  1. Наличие пробела в ссылке
  2. Не корректная относительная пагинация

1. Наличие пробелов в УРЛ у меня как-то само собой не укладывается в голове и видеть их не привычно. Хотя сейчас это часто встречается. Но выглядит далеко не эстетично)) У СЕОШников это уж точно вызовет недоумение.
Для сбора ссылок Datacol использует регулярное выражение, в качестве шаблона

<a[^>]+href\s*=\s*[\"\']{0,1}([^\s"'>]+)["'\s>]+

Это можно узнать из справки. И в этой регулярке нет места пробелу, точнее он исключен оттуда

[^\s"'>]

поэтому если ссылки с пробелами — то он их не находит по-умолчанию.

Чтобы собрать такие URL пропишем исправленную регулярку

<a[^>]+href\s*=\s*[\"\']{0,1}([^"'>]+)["'\s>]+

Для этого перейдем во вкладку «Навигация» и далее «Продвинутые» и внесем этот regexp в «Строки соответствия ссылки»

Datacol - Наличие пробела в ссылке

2. Встречаются сайты, где URL делают относительными, т.е в начале УРЛ не ставят /, например

<a href="catalog/product-1.html">ссылка</a>

а правильно было бы так

<a href="/catalog/product-1.html">ссылка</a>

Часто такое попадается в ссылках пагинации и тогда Датакол впадает в бесконечный цикл и если посмотреть ЛОГ файл то увидим примерно такую картину:

  • http://site1.com/catalog/page-name?page1
  • http://site1.com/catalog/page-name?page1?page1
  • http://site1.com/catalog/page-name?page1?page1?page1
  • http://site1.com/catalog/page-name?page1?page1?page1?page1
  • …

и так будет бесконечно и парсинг у Вас встанет на месте.

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

Есть очень простой вариант, сделать одну замену (regexp) при загрузке. Для этого перейдем во вкладку «Загрузка» — «Замены»:

href="([^/]) на href="/$1

Датакол - Не корректная относительная пагинация

Вот и все. В 99% это поможет Вам, без использования плагинов.

 

Нужна доработка или готовое решение?

Опишите задачу — отвечу в течение дня и назову сроки и стоимость.

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