Помогите настроить фильтр ссылок

Тема в разделе "Решение различных задач по парсингу", создана пользователем Nikol@, 19 сен 2012.

  1. Nikol@

    Nikol@ New Member Пользователи

    Регистрация:
    19 сен 2012
    Сообщения:
    7
    Здравствуйте.
    Я совсем недавно начал использовать CD и вот на чем застрял.
    На сайде все НУЖНЫЕ статьи имеют циферные ссылки (пример:Ссылки недоступны для гостей), но помимо них есть много НЕНУЖНЫХ статей, с буквенными ссылками (пример:Ссылки недоступны для гостей).

    Как мне необходимо настроить фильтр для отсеивания всех ссылок с буквенным написанием в нужной части?

    Чтение мануалов мне пока не помогло, буду очень благодарен за помощь :)
     
  2. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.433
    Адрес:
    Latvia
    Составьте список ссылок по диапазону (смотрите скриншот _http://prntscr.com/ftwnl )
     
  3. Nikol@

    Nikol@ New Member Пользователи

    Регистрация:
    19 сен 2012
    Сообщения:
    7
    Да, это решение приходило в голову. Но из генерированных ссылок до 70% не будет существовать вообще. На это конечно можно не обращать внимания при парсе.

    Просто думал может кто подскажет более эффективный метод настройки фильтров.
     
  4. nikolas1612

    nikolas1612 Member Пользователи

    Регистрация:
    27 ноя 2011
    Сообщения:
    439
    Вот вам несколько способов:
    1. поэкспериментировать с параметром "длина ссылки" в фильтрах. Если цифры четырех-пятизначные - по длине ссылок отсеется большинство словесного мусора, который, как правило, длиннее 5 символов.
    2. громоздкий вариант, работоспособность которого не проверял:
    ввести в шаблон вывода конструкцию типа -

    [MUSTBE][REPLACE(
    Ссылки недоступны для гостей
    re:\D|
    )]<CD_DOCURL!>[/REPLACE][/MUSTBE]
    - написал сходу, возможны грубые ошибки. смысл: убираете из ссылки все, за исключением того, места, где находятся цифры либо буквы. потом регуляркой делаете, чтобы цифры оставались, а буквы - удалялись. потом макросом [MUSTBE] отфильтровываете все документы, где после работы регулярок образовалась пустота.
     
    Последнее редактирование: 21 сен 2012
  5. Nikol@

    Nikol@ New Member Пользователи

    Регистрация:
    19 сен 2012
    Сообщения:
    7
    1. Способ не помог.
    2. Так и не воспользовался. Но вы подсказали мне про регулярку, за что огромное спасибо.

    Если интересно решил так. В "поиск-замене" фильтров прописал:
    re:ru/\D.*|#
    ,где ru доменная зона сайта.
    И добавил в пункт "Не добавлять ссылки": #

    При парсе ссылок все ненужные заменяются на вид Ссылки недоступны для гостей
    Применяем к получившемуся списку фильтр еще раз и вуаля...
     
  6. Nikol@

    Nikol@ New Member Пользователи

    Регистрация:
    19 сен 2012
    Сообщения:
    7
    Кстати еще хотел уточнить один момент, может быть вы в курсе.
    Пытался применить регулярное выражение вида:

    re:Ссылки недоступны для гостей

    Что бы сразу удалять ненужные ссылки. Но оно почему то не сработало.
    Зато выражение:

    re:Ссылки недоступны для гостей

    Работает и заменяет всю строку на символ #
    Но опять же приходится дополнительно применять фильтр к найденным ссылкам.
     
  7. nikolas1612

    nikolas1612 Member Пользователи

    Регистрация:
    27 ноя 2011
    Сообщения:
    439
    красивое решение. мне и в голову не приходило, что регулярки работают даже в окне поиск-замены фильтров.
    насчет "нерабочей" регулярки - вроде все правильно вы написали, должно работать. дайте адрес сайта, тоже потренируюсь.
     
    Последнее редактирование: 24 сен 2012
  8. Nikol@

    Nikol@ New Member Пользователи

    Регистрация:
    19 сен 2012
    Сообщения:
    7
    Ссылки недоступны для гостей. com
     
  9. nikolas1612

    nikolas1612 Member Пользователи

    Регистрация:
    27 ноя 2011
    Сообщения:
    439
    проверил.
    строка -
    re:Ссылки недоступны для гостей
    работает безупречно. помимо цифровых, остаются только ссылки, которые хоть и похожи, но не на 100% совпадают с образцом - к примеру -
    Ссылки недоступны для гостей
    так что ищите ошибку в окне фильтров.
     

Поделиться этой страницей