Comments 36
Как обстоят дела с распознаванием страниц с табличной версткой? Ведь таблицы могут быть как структурой страницы, так и контентом.
+4
… текст в элементах в блоке Фрилансим (он у нас уже получили минус за повторяющийся класс), получают минус в догонку за некрасивое соотношение ссылок к тексту равное единице. Понятно, что чем меньше этот коэффициент, тем больше текст похож на осмысленную статьюКаков коэффициент случайной статьи Mithgol'a?
+1
демку нашей реализации мы выложим позже, но вот что дает например одна известная реализация:
http://boilerpipe-web.appspot.com
они нашли самый большой коммент )
http://boilerpipe-web.appspot.com
они нашли самый большой коммент )
+3
Я могу ошибаться, но насколько я знаю, предпросмотр в ВК доступен только тем сообществам, которые подали заявку на сотрудничество. Обработка ручная, значит и парсер можно подстроить, если он сам не справится :)
+1
есть интересный проект для этой задачи code.google.com/p/boilerpipe/
и там же демка для примера со спаршенной статьей приведенной в качестве примера boilerpipe-web.appspot.com/extract?url=http%3A%2F%2Fhabrahabr.ru%2Fpost%2F198982%2F&extractor=ArticleExtractor&output=htmlFragment&extractImages=
и там же демка для примера со спаршенной статьей приведенной в качестве примера boilerpipe-web.appspot.com/extract?url=http%3A%2F%2Fhabrahabr.ru%2Fpost%2F198982%2F&extractor=ArticleExtractor&output=htmlFragment&extractImages=
0
да да, ссылка на его paper есть в сорцах. Дело в том не смотря на то что написано все с кучей формул, они ведут к одному заключению:
We have shown that textual content on the Web can ap- parently be grouped into two classes, long text (most likely the actual content) and short text (most likely navigational boilerplate text) respectively. Through our systematical anal- ysis we found that removing the words from the short text class alone already is a good strategy for cleaning boiler- plate and that using a combination of multiple shallow text features achieves an almost perfect accuracy. To a large ex- tent the detection of boilerplate text does not require any inter-document knowledge (frequency of text blocks, com- mon page layout etc.) nor any training at token level.
0
Сразу скажу, что это «белый» парсинг, вебмастеры сами добровольно пользуются нашим сервисом.
Лишь белые сеошники, наверное, зеленеют от злости (не все, а чьи труды парсят).
0
Доиграются — рекламу будут прям в текст совать :\
+1
Почему-то считал, что один из основных методов автоматического нахождения статей — длина блока или его размер/положение на странице.
Скажите, такой метод применяется?
Вообще авторам спасибо огромное. Действительно полезная статья.
Скажите, такой метод применяется?
Вообще авторам спасибо огромное. Действительно полезная статья.
+1
Я использую расширение Clearly для хрома от evernote:
chrome.google.com/webstore/detail/clearly/iooicodkiihhpojmmeghjclgihfjdjhj
Пока ни разу не промахнулось.
chrome.google.com/webstore/detail/clearly/iooicodkiihhpojmmeghjclgihfjdjhj
Пока ни разу не промахнулось.
0
ха, не знал, и эта штука гораздо лучше распарсила «неудобную» статью habrahabr.ru/post/194852/
0
Коль автор настолько глубоко погрузился в тему, не подскажите ли алгоритм для парсинга подписи в емейлах?
+2
Можно просто искать div с наибольшим количеством p. Часто это работает. Если нет, тогда переходить к более изощренным алгоритмам.
Ваша статья очень полезная. Как раз сейчас этим занимаюсь и почерпнул несколько здравых идей. Удивительно, как сам не додумался.
Ваша статья очень полезная. Как раз сейчас этим занимаюсь и почерпнул несколько здравых идей. Удивительно, как сам не додумался.
+3
На некоторых сайтах бывают довольно большие блоки внутри статьи. То есть статья делиться на два-три больших, но не равномерных куска, а между ними рекламные баннеры, ссылки на другие статьи и еще куча всего (движки стараются напихать кучу html, который не очень нужен). Ваш алгоритм как-то это учитывает? Мне из текста показалось, что ищет один длинный кусок с предложениями и выбирает только его.
+4
Ну все равно сама статья находится обычно в одном div, а вложенные баннеры — во вложенном div. Мы разбиваем DOM по div элементам и берем только текст с текущего уровня, вложенный div отбрасывается и обрабатывается в свою очередь как отдельный элемент.
То есть все эти баннеры и блоки со ссылками будут отброшены
То есть все эти баннеры и блоки со ссылками будут отброшены
0
А вы не учитываете, что перед текстом статьи обычно идёт заголовок с большими буквами, а комментарии, например, расположены обычно под текстом статьи? А заголовок можно определить по схожести с title.
0
Совсем недавно нелал парсер новостной ленты, ориентируясь на классы блоков. Хорошо работал только с lenta.ru, как я ни старался подобрать условия для gazeta.ru и ещё пары сайтов — парсер валился, и или не ловил совсем ничего — или выдавал чуть ли не весь текст со страницы (кроме тегов, их то он вырезал железно).
Нужно или регулярки писать по-серьезнее, либо мечтать о более валидных новостных лентах.
Нужно или регулярки писать по-серьезнее, либо мечтать о более валидных новостных лентах.
0
Любопытно. Почти полностью повторили мой путь когда много лет назад я делал feedex.net (на храбре об этом тоже писал). Сейчас там несколько захардкоженных эвристик, вроде описанных вами. Думаю как поимею избыток свободного времени (например, на пенсии :) — переделаю все так чтобы эвристики программа находила самостоятельно, так куда удобнее будет.
+1
круто, правда RSS счаз стал нишевой штукой, но я думаю алгоритм не пропадет. А на чем писали если не секрет (язык)?
0
Нашел свой анонс пятилетней давности — habrahabr.ru/post/42877/
Там есть ответы на некоторые вопросы. А язык — python, я как раз тогда его только начал всерьез осваивать, вот и подыскал на чем практиковаться.
Там есть ответы на некоторые вопросы. А язык — python, я как раз тогда его только начал всерьез осваивать, вот и подыскал на чем практиковаться.
0
Несколько месяцев назад для подобной цели пытался написать на Python кастомизируемый конвертер html to markdown: html2md
Смысл в том чтобы можно было получить текстовую версию html страницы в формате markdown а затем уже отрендерить её в нужном стиле. В идеале конвертер должен позволять простым перекрытием метода либо таблиц матчинга подстроиться под вёрстку конкретного сайта.
Пока работа застряла, если есть желающие присоединиться — велкам!
Смысл в том чтобы можно было получить текстовую версию html страницы в формате markdown а затем уже отрендерить её в нужном стиле. В идеале конвертер должен позволять простым перекрытием метода либо таблиц матчинга подстроиться под вёрстку конкретного сайта.
Пока работа застряла, если есть желающие присоединиться — велкам!
0
А не подскажите насколько ваше решение ресурсоемко и как быстро получается результат для страницы? Еще интересно на чем писали?
0
Sign up to leave a comment.
Как это сделано: парсинг статей