LINUX.ORG.RU

Какой предложите способ для вырезки текста статьи из html страницы?


0

2

Доброго времени всем! По работе возникла необходимость вырезать из html страницы тексты. На вход алгоритму подается html код содержащий текст статьи, в тексте статьи могут быть html теги, но их не так много как за границами данного текста. Нельзя опираться на шаблоны html кода, которые могут показать где начало, а где конец текста, т.е. формат страницы заранее не должен быть известен алгоритму. Пока в голову приходит только libpcre, но вот какой шаблон подобрать чтобы все было так универсальненько я пока не додумался. Если есть идеи или ссылки на код реализующий подобный алгоритм то оставляйте, буду очень благодарен за помощь, да и потомки думаю тоже спасибо скажут =)


Ответ на: комментарий от anonymous

scrapy для питона как я понял, вроде штука неплохая, но это всетаки фреймворк для построения парсера, а мне нужен именно алгоритм вырезки большого текста из страницы.

Прокси тоже не выход, алгоритму ведь заранее не известен формат страницы, какие в ней есть блоки и т.п. Или есть функционал о котором я не знаю и задачу можно решить при помощи xslt?

Почему libpcre смишно? =)

Seraph
() автор топика
Ответ на: комментарий от Seraph

Что - то слегка погуглив не совсем понял назначения этой штуки, в чем оно?

Вырезает «основной» текст из страницы, придумано для удобства чтения. Там в комплекте к питоновской версии есть консольная утилита вроде как, попробуй.

По собственному опыту - на стандартных страницах (текст, header, боковые блоки и footer) не ошибается почти никогда. На форумах ошибается часто, и оставляет только первое сообщение в треде.

anonymous
()
Ответ на: комментарий от anonymous

Спасибо, вроде почти то что мне и было нужно, еще бы было оно в исходниках на Си, ато переписывать ой как лень)

Seraph
() автор топика
Ответ на: комментарий от Seraph

Спасибо, вроде почти то что мне и было нужно, еще бы было оно в исходниках на Си, ато переписывать ой как лень)

Я добрый, потому поработаю заменителем гугла. Но только один раз!

https://github.com/fiam/readable

Только там AGPLv3.

anonymous
()
Ответ на: комментарий от anonymous

Низкий Вам поклон, целую в пятки! Это то что мне нужно!

Seraph
() автор топика

links -dump

выдаст текстовую составляющую страницы. Но это только если страница не ajax :)

другой способ - WebKit в котором отработают все скрипты страницы, а после того ручной проход по DOM дереву, с запросом результатов рендера и генерация (через tex очевидно) блоков текста. Но это @опа - только если есть навалом времени и бюджет IDKFA

А авторам сайтов с текстами, не мешало-бы правильные шаблоны делать под media=print.

MKuznetsov ★★★★★
()
Ответ на: комментарий от Seraph

Почему libpcre смишно? =)

re - на уровне конечного автомата, языки разметки, емнип - контекстно-свободной грамматики.

anonymous
()
Ответ на: комментарий от Seraph

но это всетаки фреймворк для построения парсера, а мне нужен именно алгоритм вырезки большого текста из страницы

была оговорка _что-нибудь вроде_, может вам вообще xpath хватит.

Прокси тоже не выход, алгоритму ведь заранее не известен формат страницы, какие в ней есть блоки и т.п.

Прокси тут только чтобы на выходе был валидный xhtml.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.