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

Уникализация массива

Тема в разделе "Техническая поддержка по JavaScript парсерам", создана пользователем Dmitron, 7 окт 2021.

  1. Dmitron

    Dmitron A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    28 май 2017
    Сообщения:
    141
    Симпатии:
    7
    Подскажите пожалуйста как уникализировать вывод ссылок в JS, используя HTML::LinkExtractor
    Есть такой код, он работает, но выводит дубли.

    Код:
    let HtmlkResp = yield this.parser.request('HTML::LinkExtractor', this.conf.Util_HTML_preset, {}, 'http://'+set.query);
    
            for (let i = 0; i < HtmlkResp.intlinks.length; i += 4) {
    
                this.logger.put(HtmlkResp.intlinks[i]);
    
    }
     
  2. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    3.572
    Симпатии:
    1.890
    Что дальше планируется делать с этими ссылками: выводить в результат или как-то еще обрабатывать? Уникализировать нужно в рамках каждого запроса или глобально в рамках всего задания?
     
  3. Dmitron

    Dmitron A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    28 май 2017
    Сообщения:
    141
    Симпатии:
    7
    Эти ссылки мне ещё нужно обработать и перейти по ним.
    Достаточно уникализировать в рамках for (...
     
  4. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    3.572
    Симпатии:
    1.890
    Код:
    let HtmlkResp = yield this.parser.request('HTML::LinkExtractor', this.conf.HTML_LinkExtractor_preset, { resultArraysWithObjects: 1 }, 'http://' + set.query);
    
    let unObj = {};
    for(let item of HtmlkResp.intlinks) {
        unObj[item.link] = 1;
    }
    
    let arrayOfUniqueLinks = Object.keys(unObj);
     
    Dmitron нравится это.
  5. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    3.572
    Симпатии:
    1.890
    Если переход по ссылкам планируется на следующих уровнях (через tools.query.add), то, как вариант, можно просто включить уникализацию запросов
     
    Dmitron нравится это.

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