Получите соответствующее изображение и резюме из URL-адреса

Я не уверен, как это определить, но в основном я хочу получить соответствующее изображение и текстовое резюме из заданного URL.

Например, когда пользователь вставляет ссылку в поле общего доступа на Facebook, он сразу получает заголовок статьи и / или короткий текстовый блок из самой статьи и соответствующего изображения. Он никогда не получает неправильный образ, например логотип сайта или текст из самой статьи …

То же самое для Google+ и других социальных сетей или подобных сервисов.

Я начал с предположения, что мне нужно прочитать содержимое страницы, используя приведенный ниже код, как я могу определить, какое изображение является соответствующим (из тела статьи) и какой текст является текстом статьи?

URL oracle = new URL("http://www.oracle.com/"); BufferedReader in = new BufferedReader( new InputStreamReader(oracle.openStream())); String inputLine; while ((inputLine = in.readLine()) != null) System.out.println(inputLine); in.close(); 

Я, конечно, не прошу ввести код здесь (если у кого-то есть фрагмент, например, и он хочет поделиться), но еще больше для того, как даже приблизиться к этому … с чего начать?

Любая помощь будет оценена!

Solutions Collecting From Web of "Получите соответствующее изображение и резюме из URL-адреса"

Я могу рекомендовать Boilerpipe для извлечения исходного текста, он использует некоторые продвинутые алгоритмы, чтобы найти соответствующий текст и удалить окружающий его шаблон (например, меню, нижние колонтитулы и т. Д.).

Что касается изображения, помимо использования метатегов, как уже было предложено в комментариях, вы можете использовать html-парсер (например, htmlparser ) для извлечения всех тегов «img», а затем использовать некоторые эвристики для выбора лучшего. Я использую некоторые эвристики:

  • Нет изображения размером менее 30 пикселей, обычно это значки или изображения для отслеживания объявлений.
  • В квадрате лучше, это позволяет избежать правителей и подобных вещей
  • Стандартный размер баннера не известен
  • Чем выше на странице, тем лучше
  • Рядом с содержимым, извлеченным с помощью Boilerplate (это сложно)

Я использую эти эвристики в производстве для очистки страниц в течение некоторого времени, и они дают хорошие результаты.

Однако для правильного применения этих правил вам может потребоваться загрузить изображения, чтобы получить их атрибуты размера и / или разбора.

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