Как извлечь полезный контент из любой html-страницы?
Здравствуйте!
Заинтересовал вопрос, обозначенный в заголовке. Просмотрел достаточно много информации, но окончательного решения для себя не нашел. Подскажите, какие методы извлечения полезного контента из веб-страниц нынче актуальны? Интересуют библиотеки или методы для любого ЯП или платформы, а не веб-сервисы типа diffbot.com (который, к слову, очень хорош, но дорог в использовании).
P.S. Как скачать и разобрать страницу на DOM-объекты - я знаю. Но что делать, если страниц 10000 и везде разная верстка? Для каждой определять правила "где полезный контент, а где нет"? Существуют готовые решения вроде Goose или NReadability, которые в целом неплохи, но хотелось бы последние тенденции выяснить.
Вы не поняли. Мне нужно забирать полезный контент из ЛЮБОЙ html-страницы. Например, я скачаю 10000 разных страниц с разных сайтов - предлагаете для каждой вручную разработать правила извлечения полезного контента? А 100000?
Артем: Как вы себе это представляете? Какой-то искусственный интеллект для каждой страницы самостоятельно определяет, что полезно, а что нет? Тот же Goose, открыл страницу с онлайн демо, там уже пример url приведен. Нажимаю Fetch article и появляется надпись fetching your url.... Все. Больше ничего нет.
В HTML5 семантики ради была добавлена куча тегов, по функционалу равных div. Никто не гарантирует, что их будут использовать, но для тех, кто использует, вы можете просто искать, к примеру, по тегу article. Или же искать в class и id ключевые слова "main","article" и т.д. Но учесть все варианты, не создавая сигнатуры для каждого сайта, просто нельзя.
Ну, допустим, тот же diffbot.com бравирует своим AI, с помощью которого анализирует контент. Скорее всего, хорошо обученная нейросеть.
Решения типа Goose и Readability работают без использования нейросетей, насколько я знаю, но выдают вполне приемлемый результат. Понятно, что 100% качества никто не даст, но 98% сайтов в plain content превратить можно.
Собственно, и хотел узнать, какие нынче тенденции на этом рынке.
Вы не поняли. Мне нужно забирать полезный контент из ЛЮБОЙ html-страницы. Например, я скачаю 10000 разных страниц с разных сайтов - предлагаете для каждой вручную разработать правила извлечения полезного контента? А 100000?
Артем: Любое из приведенных решений годится для Вашей задачи. Особенно советую именно contentDownloader там можно гибко настроить парсинг как угодно и чего угодно.
Артем: Годится, только написать надо скрипт на php к ней или взять готовое решение, который будет определять полезный контент. Как примитивный пример по тегу article или по микроразметки. Можно вообще возложить эту задачу на гугл и парсить его выдачу, кушать снипеты, потом разбирать дом с поправкой на них.
Вот меня и интересуют готовые решения, которые будут определять полезный контент. Использовать для этого гугл... слабо представляю себе как. Сниппеты могут браться откуда угодно, их может вообще не быть - решение совершенно не универсальное. Лучшее, что я видел - это diffbot.com, есть ещё подобные сервисы (на западе популярно направление content-анализа "всея веба"), но все они довольно дороги на объемах от миллиона страниц.
Артем: Замените в вопросе "Как извлечь полезный контент из любой html-страницы" на "где найти решение для анализа контента страницы" - это две большие разницы и все Вам отвечают верно. Просто вопрос не правильный.