Я хотел бы проанализировать веб-страницу и извлечь из нее содержательный контент. По значимости я имею в виду контент (только текст), который пользователь хочет увидеть на этой конкретной странице (данные, исключая рекламу, баннеры, комментарии и т.д.). Я хочу убедиться, что когда пользователь сохраняет страницу, данные, которые он хотел чтение сохраняется, и ничего больше.
Короче, мне нужно создать приложение, которое работает так же, как Readability. (http://www.readability.com) Мне нужно взять этот полезный контент на веб-странице и сохранить его в отдельном файле. Я действительно не знаю, как это сделать.
Я не хочу использовать API, который должен мне подключиться к Интернету и получать данные со своих серверов, так как процесс извлечения данных должен выполняться в автономном режиме.
Есть два метода, о которых я мог подумать:
-
Использовать алгоритм, основанный на механизме обучения (например: http://ai-depot.com/articles/the-easy-way-to-extract-useful-text-from-arbitrary-html/)
-
Создайте веб-скребок, который мог бы удовлетворительно удалить весь беспорядок с веб-страниц.
Есть ли существующий инструмент, который делает это? Я наткнулся на библиотеку котлов (http://code.google.com/p/boilerpipe/), но не использовал ее. Кто-нибудь использовал его? Получает ли он удовлетворительные результаты? Существуют ли какие-либо другие инструменты, особенно написанные на PHP или Python, которые делают этот вид веб-соскабливания?
Если мне нужно создать свой собственный инструмент, чтобы сделать это, что бы вы решили предложить?
Так как мне нужно будет очистить грязный или неполный HTML, прежде чем я начну его разборку, я бы использовал такой инструмент, как Tidy (http://www.w3.org/People/Raggett/tidy/) или Beautiful Суп (http://www.crummy.com/software/BeautifulSoup/bs4/doc/), чтобы выполнить эту работу.
Но я не знаю, как извлечь контент после этого шага.
PS. Я любитель и хотел бы, если бы были готовы использовать инструменты с открытым исходным кодом, которые делают это, и их можно легко интегрировать в мой код, который я напишу на PHP или Python. Или, если мне нужно написать свой собственный код, я бы хотел получить руководство, которое проделало такую работу раньше!:) Большое спасибо!