Получение «сводки» веб-страницы - PullRequest
2 голосов
/ 31 мая 2010

У меня есть проблема с волосатостью, я хотел бы сгенерировать пару абзацев «описания» данного URL, обычно это начало статьи. Поле мета-описания - один из способов, но оно не всегда хорошо или неправильно настроено.

Справедливо сказать, что это немного проблематично сделать с помощью HTML-кода на экране. У меня была общая идея, что, возможно, кто-то может отсканировать HTML-код для первого «подходящего» сегмента, но трудно сказать, что это, возможно, что-то вроде первого абзаца, содержащего определенное количество текста ...

У кого-нибудь есть хорошие идеи? :) Он не должен быть надежным

Ответы [ 3 ]

6 голосов
/ 31 мая 2010

Итак, ты хочешь стать новым Google, а? : -)

В наши дни многие сайты «оптимизированы для SEO». Это позволяет вам перейти к заголовкам, а затем искать абзацы ниже.

Также ищите списки. В некоторых интерфейсах в виде вкладок (табы, аккордеоны ...) много контента, что делается с помощью упорядоченных или неупорядоченных списков.

Если это не удастся, возможно, найдите div с классом "content" или "main" или их комбинацией и начните с этого.

Если вы используете разные подходы, убедитесь, что вы ведете статистику того, что сработало, а что нет (возможно, даже сохранили всю страницу), чтобы вы могли просматривать и настраивать методы анализа и поиска.

В качестве примечания я использовал htmlagilitypack для успешного анализа и поиска в html. Ну, по крайней мере, это лучше, чем анализ с регулярным выражением: -)

2 голосов
/ 31 мая 2010

Возможно, найдите элемент div, который содержит большинство элементов p, а затем возьмите первого p дочернего элемента. Если нет div, получите первое p от элемента body.

У этого всегда будут свои проблемы.

0 голосов
/ 31 мая 2010

Вы можете удалить теги HTML, используя это регулярное выражение

string stripped = Regex.Replace(textBox1.Text,@"<(.|\n)*?>",string.Empty)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...