Извлечение * релевантного * изображения с веб-страницы - PullRequest
7 голосов
/ 28 июня 2010

У меня есть пара сайтов для сбора новостей с поддержкой твиттера. Я планировал добавить изображения из статей, которые я нашел в твиттере.

Если я загружаю страницу и извлекаю изображение с помощью тега <img>, я получаю кучу изображений; Не все из них имеют отношение к статье. Например, изображения кнопки, иконки, реклама и т. Д. Захватываются. Как извлечь изображение, сопровождающее статью? Я знаю, что есть решение - Facebook Link Share делает это очень хорошо.

Митхун

Дубликат: Как найти и извлечь "основное" изображение на сайте

Ответы [ 4 ]

7 голосов
/ 16 сентября 2010

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

Я думаю что-то вроде:

  • Самое большое разрешение + = 5 баллов
  • Самый большой размер файла + = 10 баллов
  • JPEG + = 2 балла

затем возьмите изображение с наибольшим количеством очков и выбросьте остальные

Вероятно, работает для большинства сайтов.

(хотя потребуется немного поиграться с эвристикой)

4 голосов
/ 14 мая 2016

Это было давно. Но это может помочь в следующий раз.

Вы можете использовать этот API https://urlmeta.org/

Он очень прост в использовании, и результат - лучшее, что нам нужно.

пример использования API:

<?php
$url = "http://timesofindia.indiatimes.com/business/india-business/Raghuram-Rajan-not-fit-to-be-RBI-Governor-Subramanian-Swamy/articleshow/52236298.cms";

$result = file_get_contents('https://api.urlmeta.org/?url='.$url);
$array = json_decode($result,1);
print_r($array['meta']['image']);

?>

И это результат, который вам нужен.

3 голосов
/ 16 сентября 2010

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

  1. Скажите, что заголовок страницы, которую я нахожу, это "это заголовок"
  2. Я использую это как запрос к Google Image API, а затем извлекаю первый найденный мной эскиз.

На самом деле это работает довольно хорошо для большинства случаев. Проверьте это сами http://cricketfresh.in

Митхун

пс: я думаю, что это хороший ответ. Дадим кредит тому, кто придет с более элегантным ответом.

1 голос
/ 16 сентября 2010

Я предполагаю, что у Facebook есть экстрактор ссылок для различных сайтов, которые он поддерживает.Что-то вроде id = "content" -> img (1st).

Думаю, я не прав.Кажется, что Facebook использует Open Graph Protocol , чтобы определить, какое изображение (og: image) и какие метаданные использовать.

...