Ответы пользователя по тегу Парсинг
  • Парсим/грабим веб-страницы без мусора?

    @mik222
    Эта задача называется data region mining и является довольно хитрой проблемой, т.к. верстка может быть везде разной, а вы решаете задачу поиска основного контента на сайте(т.е. обрезать рекламу, навигационные блоки, левые вставки, спрятанный контент и прочее)
    Вот вам на вскидку алгоритм:
    1. Для каждой html ноды в дереве, вычислить её площадь(рендерите через phantom.js и вычисляете площадь через Element.getBoundingClientRect())
    2. Удаляете все, что меньше средней площади на этом уровне. (Вычищаем не имеющие значения блоки)
    3. Спускаетесь вниз на один уровень и повторяете алгоритм


    В результате получите набор текстовых блоков, которые имеют максимальный объем на странице.

    Вам нужно будет эмпирически до настроить алгоритм под ваш use case:
    Например, если перед вами регион с большим количеством текстовых блоков, то достать текст из всех дочерних и уложить в регион(таким образом мы избегаем вырезки bold italic текста).

    Дальше за вами стоит задача объединить эти регионы в статью/статьи(в случае с лентой).
    --------
    Существуют и более любопытные алгоритмы по вычислению попарной similarity между произвольными дочерними нодами с целью найти data region
    Но это вам нужно читать опубликовынные статьи на эту тему, например:
    dl.acm.org/citation.cfm?id=1060761
    Ответ написан
    Комментировать