1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вступайте в наш Telegram чат: https://t.me/a_parser Нас уже 2600+ и мы растем!
    Скрыть объявление

Задать минимальное и максимальное кол-во слов

Тема в разделе "Техническая поддержка", создана пользователем Zlodeys, 18 апр 2019.

  1. Zlodeys

    Zlodeys A-Parser Pro License
    A-Parser Pro

    Регистрация:
    2 фев 2016
    Сообщения:
    51
    Симпатии:
    30
    Всем привет!
    Друзья, подскажите пожалуйста, собираю все тайтлы со страницы сайта. http://prntscr.com/ndkhde
    Нужно сделать чтобы сохранялись данные где не менее 3-х и не более 10 слов.
    Сейчас вот такой вывод
    [% FOREACH item IN p1.title; item.texttitle _ "\n"; END %]
    Подскажите пожалуйста.
     
    #1 Zlodeys, 18 апр 2019
    Последнее редактирование: 18 апр 2019
  2. Support Денис

    Support Денис A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    12 июн 2017
    Сообщения:
    586
    Симпатии:
    185
    Здравствуйте.
    Можно попробовать так
    eJyNVH9v2jAQ/SqW1VZUhRAKbae06kTZWLtS6ArVpBE0ecShHk6c2Q79gfjuOzsh
    ELZJ+yfJne/ePd+93BJroubqXlJFtcLeeIkT+409HNCQpFzjKk6IVFSa4zHuU+15
    16PRPfiLiCXWrwmFHLGgUrKAwiELwA6FjIgGxAxoQXhqwsb7fnzTRZppTpWj2BtF
    l+gYHRyUXBeo0Tj3Y19bJ/qOfOyDicH3sf8BnvsTvPp37ZkQQUdYO687PnbdyVbG
    NFVaRA9rdjlNuDnRxNoz+gLmha1/WRn7vvL94eTo/eGF79etdx02yhALlNwOOTHI
    REry2idRKcT0E2cg/0OqVM70kNTe2rVvfuq2mm7NvFqhfTUy6zicHO2wm+3Ss7x2
    +GUTKLNkmkYlkru9TkEfNTKj8faU0Z14Y5yT+onjospXFgfiWaH+CDVcxz1H4Dht
    naOX09YhaicJp1/pj1um6yfNM6d5iiq316O7XhVxNqfoE53OxSHqPEkR0fpZ03Eh
    5F3TabhNNCQhkSxPw6vJpKDeteoDJntJw8l1XRwOyYKOhJkRy/ua5YCVd2IPdEDN
    qZPJuHLo6Bc7ziBgmomY8KyC6dGm6mPMftn7xwJi4VMyqrpA3DSXWgDjfF2zG+M9
    a2OASG3ulywHeyHhilaxAqpdAkSC3RMYjCRayEFi+IB/iUXc5rxHF5Rvwiz+Vcp4
    AL9xO4Skmzzx7yGDPzBWxfW2S4EKniVwKFCsdTW422QFoidm62bMKU2K9vSNJxKS
    Fog5SF4IllJC46D0y4BOCleJcWkCZedUxCGbDXLFriPTeASbbxB3RATSM1eIU86r
    RskPGyW0Vd5xY2wI7iZ3bInSztRCcPV5mFFNJAOlnRiCETRtu2oOOSWcPz70tk/w
    Rj1gPGmdKK9eJ7VsGztTEJTJ03QmQDxwq9WkWNXFQl9uLWxvuYKB/FT3WYy5kokA
    H/RGwQiw11j9Bp7bDeM=
     
  3. Zlodeys

    Zlodeys A-Parser Pro License
    A-Parser Pro

    Регистрация:
    2 фев 2016
    Сообщения:
    51
    Симпатии:
    30
    Не подходит, видимо из за того что ваш пример парсит одно содержимое и разбивает на массив и уже этот массив проверяет на кол-во слов.
    Все дело в том что я собираю через HTML::LinkExtractor
    Так как на странице много повторяющихся данных которые нужно собрать и они в тегах title поэтому и собираю в массив
    И у меня несколько выводов, среди них есть и этот
    [% FOREACH item IN p1.intlinks; item.anchor _ "\n"; END %]
    Применить условие кол-ва слов также нужно и к anchor
     
    #3 Zlodeys, 18 апр 2019
    Последнее редактирование: 18 апр 2019
  4. Support Денис

    Support Денис A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    12 июн 2017
    Сообщения:
    586
    Симпатии:
    185
    Принцип тот же самый. С элемента массива регулярным выражением собираете слова, и точно так же проверяете
    Код:
    [%
    FOREACH item IN p1.intlinks;
               words = item.anchor.match('[a-zA-Zа-я-А-Я]+',1);
              IF words.size > 2 && words.size < 11;
                       item.anchor _ "\n";
             END;
    END;
    %]
     
    #4 Support Денис, 18 апр 2019
    Последнее редактирование: 18 апр 2019
    Zlodeys нравится это.
  5. Zlodeys

    Zlodeys A-Parser Pro License
    A-Parser Pro

    Регистрация:
    2 фев 2016
    Сообщения:
    51
    Симпатии:
    30
    Пустой вывод получается ).
    Хотя так выводит [% FOREACH item IN p1.intlinks; item.anchor _ "\n"; END %]
     
    #5 Zlodeys, 18 апр 2019
    Последнее редактирование: 18 апр 2019
  6. Support Денис

    Support Денис A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    12 июн 2017
    Сообщения:
    586
    Симпатии:
    185
    Поменял строку вывода. Попробуйте так
    Код:
    [%
    FOREACH item IN p1.intlinks;
               words = item.anchor.match('[a-zA-Zа-я-А-Я]+',1);
              IF words.size > 2 && words.size < 11;
                       item.anchor _ "\n";
             END;
    END;
    %]
     
    Zlodeys нравится это.
  7. Zlodeys

    Zlodeys A-Parser Pro License
    A-Parser Pro

    Регистрация:
    2 фев 2016
    Сообщения:
    51
    Симпатии:
    30
    Спасибо Большое! Так все работает, именно то что нужно!
     
    Metroid, Forbidden, Support и ещё 1-му нравится это.

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