Подтвердить что ты не робот

Как вы находите "главную" картину веб-сайта с учетом URL-адреса?

Скажем, вам дано http://nytimes.com Как бы вы вытащили "основное" изображение?

Причина, по которой я спрашиваю, заключается в том, что Flipboard способен захватить основное изображение с веб-сайта, просто используя URL-адрес.

Вы можете проанализировать все теги изображений. Но что тогда?

4b9b3361

Ответ 1

На самом деле нет ничего, что считалось бы "основным" изображением на веб-странице - ничто в HTML или иначе не отличало бы это. Не говоря уже о том, что вам, вероятно, придется прочитать все изображения в CSS (или, скорее, фоновые изображения и т.д.). Но если бы мне пришлось это сделать, вот что я сделал бы:

  • Сначала я бы выбрал подходящий размер изображения, допустим, минимум 400x400. (Я не хочу выбирать какой-либо старый образ, что-то действительно маленькое, вероятно, будет ужасно страшно).
  • Затем я перебирал каждое изображение на странице 2.
  • Для каждого изображения, с которым я столкнулся, я бы проверил его размер3. Если бы это было 400x400 (мой предопределенный размер) или больше, я бы использовал это изображение. Если бы это было не так, я бы проверял, что это самое большое изображение, которое я нашел до сих пор, и если он хранит его информацию в стороне.
  • Как только я достиг предопределенного количества изображений, которые я проверил

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

Ответ 2

Я не считаю, что существует стандартный метод. Вы можете начать с поиска тега изображения Open Graph Protocol. Facebook использует их для выбора изображений для URL-адресов, размещенных в статусных обновлениях и комментариях.

<meta property="og:image" content="http://ia.media-imdb.com/rock.jpg"/>

Если вы готовы использовать третью сторону, Embedly предлагают это как платный сервис.

Embedly предоставляет мощный API для преобразования стандартных URL-адресов во встроенные видео, изображения и богатые статьи из 218 ведущих поставщиков.

Ответ 3

Существует множество стратегий для определения того, что является "основным" образом URL-адреса:

  • многие веб-сайты теперь заявляют, каков главный образ (для Facebook OpenGraph или Twitter Cards).
  • иногда изображение можно угадать с помощью URL-адреса или путем вызова API (особенно для веб-сайтов с изображениями, таких как Instagram).
  • основное изображение также может быть определено с помощью анализа веб-страницы с использованием методов извлечения контента (Readability). Вы можете отфильтровать "шум", чтобы избавиться от отслеживания пикселей или рекламы.
  • Если все эти методы терпят неудачу, вы можете загрузить все изображения и предположить, что наиболее интересные изображения наиболее интересны.

Я создал библиотеку JavaScript, которая использует большинство этих методов для определения "основного" изображения URL-адреса: ImageResolver.

Ответ 4

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

Например, вы можете использовать простую программу распознавания лиц или просмотреть разбивку цвета, чтобы определить, было ли изображение "интересным" для вас или нет.

EDIT: В случае с www.nytimes.com, я бы просто посмотрел на структуру страницы, потому что большая карусель изображений находится прямо под тегом H1.