从网页中提取*相关*图像

时间:2010-06-28 03:11:17

标签: html parsing image-extraction

我有一些Twitter推动的新闻聚合网站。我一直在计划添加我在twitter上找到的文章中的图像。

如果我下载页面并使用<img>标签提取图像,我会得到一堆图像;并非所有这些都与文章相关。例如,捕获按钮,图标,广告等的图像。如何提取文章附带的图像?我知道有一个解决方案 - Facebook链接共享器做得非常好。

大额牛

重复:How to find and extract "main" image in website

4 个答案:

答案 0 :(得分:7)

从页面下载所有图片, 将来自广告服务器的所有图像列入黑名单。 然后找一些能够为你提供正确图像的启发式算法......

我认为:

  • 最大分辨率+ = 5pts
  • 最大文件大小+ = 10分
  • Jpeg + = 2 pts

然后拍摄得分最多的图像并将其余部分扔掉

可能适用于大多数网站。

(虽然需要一些摆弄启发式方法)

答案 1 :(得分:4)

已经很久了。但这可能有助于下一次。

您可以使用此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']);

?>

这就是你需要的结果。

答案 2 :(得分:3)

我想出了一个有点hacky但对我有用的解决方案。这是我做缩略图的方法。

  1. 说我找到的页面标题是“这是标题”
  2. 我将此作为对Google Image API的查询,然后提取我找到的第一个缩略图。
  3. 对于大多数情况,它实际上运作良好。亲自检查http://cricketfresh.in

    大额牛

    ps:我认为这是一个很好的答案。会给予那些有更优雅答案的人称赞。

答案 3 :(得分:1)

我猜想Facebook有一个链接提取器,用于它支持的各个站点。像id =“content” - &gt; img(1st)。

猜猜我错了。似乎Facebook使用Open Graph Protocol来定义哪个图像(og:图像)以及要使用的元数据。