9

我有几个 twitter 驱动的新闻聚合网站。我一直计划从我在 Twitter 上找到的文章中添加图片。

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

米通

重复:如何在网站中查找和提取“主”图像

4

4 回答 4

8

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

我认为是这样的:

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

然后取出点数最多的图像并将其余的扔掉

可能适用于大多数网站。

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

于 2010-09-16T11:57:46.060 回答
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']);

?>

这就是您需要的结果。

于 2016-05-14T06:59:09.150 回答
3

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

  1. 说我找到的页面标题是“这是标题”
  2. 我将其用作对 Google Image API 的查询,然后提取我找到的第一个缩略图。

它实际上适用于大多数情况。自己检查一下http://cricketfresh.in

米通

ps:我认为这是一个很好的答案。将归功于提供更优雅答案的人。

于 2010-09-16T11:52:25.690 回答
1

我猜 Facebook 为其支持的各种网站都有一个链接提取器。像 id="content" -> img (1st) 之类的东西。

猜我错了。似乎 Facebook 使用开放图形协议来定义要使用的图像 (og:image) 和元数据。

于 2010-09-16T08:16:14.573 回答