2010-06-28 65 views
7

我有一对twitter推动的新闻聚合网站。我一直计划添加我在twitter上发现的文章中的图片。从网页中提取*相关*图片

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

大额牛

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

回答

1

我猜想,Facebook有它支持的各种网站的链接提取。有点像id =“content” - > img(1st)。

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

+0

那么OGP是Facebook推动的一些东西,以便他们可以准确地提取元数据。不幸的是,大量的网站不遵循这个标准。 – mithun 2010-09-16 11:51:44

3

我觉得这种解决方案有点不好,但对我有用。这是我做什么来获取缩略图。

  1. 说我觉得这页的标题是:“这是一个标题”
  2. 我用这个作为查询到谷歌图片API,然后提取第一缩略图我发现。

它实际上对大多数情况下工作得很好。检查出来为自己http://cricketfresh.in

大额牛

PS:我觉得这是一个很好的答案。会给予一个更优雅的答案的人的功劳。

7

从页面下载所有图像, 黑名单来自广告服务器的所有图像。 然后找到一些启发,这将让你正确的图像...

我觉得是这样的:

  • 最大分辨率+ =点压频比
  • 最大文件大小+ = 10分
  • 的JPEG + = 2点

然后采取最点图像并扔掉其余远

可能适用于大多数网站。

(将需要与启发式虽然有些摆弄)

+0

这是经典的方法,并感谢您把它放在这里。我有点犹豫要走这条路,因为我不确定这需要多长时间。就像你说的那样,经过一些调整后它可能会很好用。我在其他地方找到的更多因素是:1]图像的路径。 2]指定宽度和高度的图像 – mithun 2010-09-16 16:04:33

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 2016-09-20 21:57:14