Извлечение одних и тех же данных из различных HTML-документов

Допустим, у меня есть несколько HTML-страниц с несвязанных веб-сайтов, но они содержат одинаковую общую информацию. Я хочу извлекать эту информацию гибким образом, т.е. я хочу написать только небольшое количество экстракторов данных для всех страниц (в идеале, одну). Скажем, поля (используя пример блога) author, date, title, text. Классы тегов HTML, которые их обозначают, могут быть совершенно разными для каждой страницы, но все же отображаться на странице примерно одинаково. Например, возьмите этот пост из CNN и этот пост из Гаукера. Оба содержат одну и ту же информацию — информацию, которую я хочу — где-то на странице, когда она фактически отображается. Есть ли хороший способ извлечь эти данные? Написание отдельных экстракторов — вариант, но не лучший; в наборе данных есть около тысячи стилей документов, которые я хочу использовать.


person jclancy    schedule 18.05.2013    source источник


Ответы (1)


Единственный способ сделать это — найти общий элемент на всех этих веб-сайтах (например, они имеют одинаковую структуру DOM, или имеют одинаковый идентификатор, или им предшествует одно и то же содержимое в предыдущем теге, например <h1>).

В противном случае вам нужно писать разные правила или регулярные выражения для каждого случая.

Если, конечно, вы не напишете настолько интеллектуальный алгоритм, который способен распознавать намерение/значение контента даже с другим HTML, который ни в коем случае не прост и не быстр в написании.

person Francisco Zarabozo    schedule 18.05.2013
comment
Третий вариант - это то, к чему я стремился. Я подумал, что кто-то думал об этой проблеме раньше и, возможно, решил ее. В идеале они должны были разместить источник в Интернете или описать методы, которые они использовали. - person jclancy; 19.05.2013
comment
Не то чтобы я в курсе. Но Google, например, делает это, чтобы обнаружить множество вещей и релевантность. Я не знаю, есть ли у них какие-либо проекты с открытым исходным кодом, связанные с этим, но я сомневаюсь в этом. Надеюсь, кто-то еще здесь знает что-то подобное. - person Francisco Zarabozo; 19.05.2013