我有一对twitter推动的新闻聚合网站。我一直计划添加我在twitter上发现的文章中的图片。从网页中提取*相关*图片
如果我使用<img>
标签下载页面并提取图像,我会得到一堆图像;不是所有这些与文章有关。例如,捕获按钮,图标,广告等图像。如何提取文章附带的图像?我知道有一个解决方案 - Facebook链接共享器做得很好。
大额牛
重复的:How to find and extract "main" image in website
我有一对twitter推动的新闻聚合网站。我一直计划添加我在twitter上发现的文章中的图片。从网页中提取*相关*图片
如果我使用<img>
标签下载页面并提取图像,我会得到一堆图像;不是所有这些与文章有关。例如,捕获按钮,图标,广告等图像。如何提取文章附带的图像?我知道有一个解决方案 - Facebook链接共享器做得很好。
大额牛
重复的:How to find and extract "main" image in website
我猜想,Facebook有它支持的各种网站的链接提取。有点像id =“content” - > img(1st)。
猜猜我错了。似乎Facebook使用Open Graph Protocol来定义哪个图像(og:图像)和要使用的元数据。
我觉得这种解决方案有点不好,但对我有用。这是我做什么来获取缩略图。
它实际上对大多数情况下工作得很好。检查出来为自己http://cricketfresh.in
大额牛
PS:我觉得这是一个很好的答案。会给予一个更优雅的答案的人的功劳。
从页面下载所有图像, 黑名单来自广告服务器的所有图像。 然后找到一些启发,这将让你正确的图像...
我觉得是这样的:
然后采取最点图像并扔掉其余远
可能适用于大多数网站。
(将需要与启发式虽然有些摆弄)
这是经典的方法,并感谢您把它放在这里。我有点犹豫要走这条路,因为我不确定这需要多长时间。就像你说的那样,经过一些调整后它可能会很好用。我在其他地方找到的更多因素是:1]图像的路径。 2]指定宽度和高度的图像 – mithun 2010-09-16 16:04:33
这是一个漫长的时间。但这可能有助于下一次。
您可以使用此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']);
?>
这就是你所需要的结果。
urlmeta.org非常酷。适用于几乎所有的电子商务产品页面。 – vaichidrewar 2016-09-20 21:57:14
那么OGP是Facebook推动的一些东西,以便他们可以准确地提取元数据。不幸的是,大量的网站不遵循这个标准。 – mithun 2010-09-16 11:51:44