2010-06-28 2 views
7

У меня есть веб-сайт агрегирования новостей на twitter-powered. Я планировал добавлять изображения из статей, которые я нахожу в твиттере.Извлечение * Соответствующее * изображение с веб-страницы

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

Митхун

Дубликат: How to find and extract "main" image in website

ответ

1

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

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

+0

Ну, OGP - это то, что Facebook толкает, так что они могут точно извлекать метаданные. К сожалению, большое количество веб-сайтов не соответствует этому стандарту. – mithun

3

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

  1. Say заголовок страницы я нахожу это «это заголовок»
  2. Я использую это как запрос к API изображений Google и затем извлечь первый эскиз я нахожу.

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

Митхун

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

7

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

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

  • Biggest разрешения + = 5 точек
  • Самого большого размера файла + = 10 баллов
  • Jpeg + = 2 балла

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

Возможно работает на большинстве сайтов.

(Потребует некоторые возился с эвристики, хотя)

+0

Это классический подход, и спасибо за то, что вы его положили. Я немного колебался, чтобы пойти по этому пути, потому что я не был уверен, сколько времени это займет. Как вы сказали, он, вероятно, отлично работает после некоторой настройки. Еще несколько факторов, которые я нашел в другом месте: 1] путь изображения. 2] изображения, ширина и высота которых указаны – mithun

3

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

Вы можете использовать этот 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']); 

?> 

И вот результат вам нужно.

+0

urlmeta.org довольно круто. Работает практически на всех страницах продуктов электронной торговли. – vaichidrewar

Смежные вопросы