我有一些Twitter推动的新闻聚合网站。我一直在计划添加我在twitter上找到的文章中的图像。
如果我下载页面并使用<img>
标签提取图像,我会得到一堆图像;并非所有这些都与文章相关。例如,捕获按钮,图标,广告等的图像。如何提取文章附带的图像?我知道有一个解决方案 - Facebook链接共享器做得非常好。
大额牛
答案 0 :(得分:7)
从页面下载所有图片, 将来自广告服务器的所有图像列入黑名单。 然后找一些能够为你提供正确图像的启发式算法......
我认为:
然后拍摄得分最多的图像并将其余部分扔掉
可能适用于大多数网站。
(虽然需要一些摆弄启发式方法)
答案 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但对我有用的解决方案。这是我做缩略图的方法。
对于大多数情况,它实际上运作良好。亲自检查http://cricketfresh.in
大额牛
ps:我认为这是一个很好的答案。会给予那些有更优雅答案的人称赞。答案 3 :(得分:1)
我猜想Facebook有一个链接提取器,用于它支持的各个站点。像id =“content” - &gt; img(1st)。
猜猜我错了。似乎Facebook使用Open Graph Protocol来定义哪个图像(og:图像)以及要使用的元数据。