Как вы находите «основную» картинку сайта, учитывая URL? - PullRequest
12 голосов
/ 30 октября 2010

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

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

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

Ответы [ 4 ]

13 голосов
/ 18 января 2012

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

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

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

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

10 голосов
/ 02 января 2013

Существует множество стратегий определения «основного» изображения URL:

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

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

3 голосов
/ 30 октября 2010

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

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

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

0 голосов
/ 30 октября 2010

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

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

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