我有几个 twitter 驱动的新闻聚合网站。我一直计划从我在 Twitter 上找到的文章中添加图片。
如果我下载页面并使用标签提取图像<img>
,我会得到一堆图像;并非所有这些都与文章相关。例如,捕获按钮、图标、广告等的图像。如何提取文章随附的图像?我知道有一个解决方案——Facebook 链接共享器做得很好。
米通
我有几个 twitter 驱动的新闻聚合网站。我一直计划从我在 Twitter 上找到的文章中添加图片。
如果我下载页面并使用标签提取图像<img>
,我会得到一堆图像;并非所有这些都与文章相关。例如,捕获按钮、图标、广告等的图像。如何提取文章随附的图像?我知道有一个解决方案——Facebook 链接共享器做得很好。
米通
从页面下载所有图片,将来自广告服务器的所有图片列入黑名单。然后找到一些启发式方法,可以为您提供正确的图像...
我认为是这样的:
然后取出点数最多的图像并将其余的扔掉
可能适用于大多数网站。
(虽然需要一些启发式摆弄)
已经很久了。但这下次可能会有所帮助。
您可以使用此 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']);
?>
这就是您需要的结果。
我想出了一个有点hacky但对我有用的解决方案。这是我获取缩略图的方法。
它实际上适用于大多数情况。自己检查一下http://cricketfresh.in
米通
ps:我认为这是一个很好的答案。将归功于提供更优雅答案的人。
我猜 Facebook 为其支持的各种网站都有一个链接提取器。像 id="content" -> img (1st) 之类的东西。
猜我错了。似乎 Facebook 使用开放图形协议来定义要使用的图像 (og:image) 和元数据。