2010-10-30 60 views
12

假设你给http://nytimes.com 你会如何取出“主”图像?如何找到网站的“主要”图片,给定网址?

我问的原因是因为Flipboard能够从网站抓取主图像,只需使用URL。

你可以解析出所有的图片标签。但那又如何?

+2

“主要图像”是相当无意义的。你在谈论最大的形象?你会如何看待[StackOverflow.com](http://stackoverflow.com/)上的“主要”图像? – meagar 2010-10-30 03:12:55

+0

你的意思是徽标? – Vamsi 2010-10-31 06:11:11

+6

不是毫无意义 - Flipboard作为例子。显示来自网址的“主要”图片的其他服务包括Summify,Percolate,Facebook和Twitter。 – 2012-01-17 23:00:09

回答

3

真的没有任何东西被认为是网页中的“主要”图像 - 没有任何内容用于区分这一点。更不用说你可能需要阅读CSS中的所有图像(或者更确切地说是背景图像等)。但如果我必须这样做,这是我会做的:

  1. 首先,我会决定一个合适的图像大小,可以说400x400最低。 (我不想挑选任何旧图像,真的很小的东西可能会严重缩小)
  2. 然后,我会遍历页面上的每个图像。
  3. 对于我遇到的每个图像,我都会检查它的大小。 如果它是400x400(我的预定义尺寸)或更大,我会使用此图像。 如果不是,我会检查它是迄今为止发现的最大图像,如果是这样,请将其信息保存在一边。
  4. 一旦我达到我检查

    图像的预定数量(参数可以说10,但肯定你恐怕会更高),我会用我发现的最大的图像(存储在旁边),因为我不想无限期地扫描页面寻找图像!

+3

如果你只是寻找最大的图像,你很可能会得到一个巨大的广告,如排行榜(728x90)或摩天大楼(120x600) – kijin 2010-10-30 04:24:40

+1

这是非常真实的。所以你可以限制最大尺寸。 – pinkfloydx33 2010-10-30 04:37:23

+4

大部分广告通过iframe加载,因此它们不会成为页面的一部分。但如果这是一个问题,你可以忽略任何IAB标准尺寸。 – gabrielk 2010-10-31 06:43:43

0

Facebook允许用户从中选择几张被认为是“主”图像的图像中的一幅。至于自动确定一个“主”图像,我会根据页面的位置,大小,与文本的关系以及(如果你想更复杂一些)其视觉内容来判断它。例如,您可以使用简单的人脸检测程序,或查看颜色细分以确定图片是否对您“有趣”。

编辑:在www.nytimes.com的情况下,我可能只是看一下页面结构,因为图像的大旋转木马正好位于H1标签的下方。

13

我不相信有一个标准的方法。您可以从寻找Open Graph Protocol图片标签开始。 Facebook使用这些来为状态更新和评论中张贴的网址选择图像。

<meta property="og:image" content="http://ia.media-imdb.com/rock.jpg"/> 

如果你准备使用第三方,Embedly报价以此为收费服务。

Embedly提供了一个功能强大的API标准的URL转换为嵌入式 视频,图像,以及来自218个领先供应商丰富的文章预览。

+1

+用于嵌入。感谢您的建议。 – 2014-03-15 19:07:24

+0

关于Open Graph标记的更多信息https://developers.facebook.com/docs/sharing/webmasters – binaryfunt 2016-10-19 11:44:47

10

有许多策略来决定什么是URL的“主”的形象:

  • 很多网站现在我宣布,主图像是什么(对于Facebook OpenGraph或Twitter信息卡)
  • 有时,可以从URL或通过API调用来猜测图像(尤其适用于图像托管网站,如Instagram)
  • 也可以通过分析带有内容提取技术(可读性)的网页来确定主图像。您可能需要过滤掉“噪音”以摆脱跟踪像素或广告。
  • 如果所有这些技术都失败了,您可以下载所有图像并假定最大的图像是最有趣的。

我创建了一个使用大多数这些技术来确定URL的“主”图片的JavaScript库:ImageResolver

+0

感谢Maurice - 这个东西真的很好用,只是测试它非常彻底,我发现的唯一微小的不准确是它带来了返回本文中的第二张图片:http://www.bbc.com/news/uk-35781613。除此之外,它完全符合我对“主”形象的定义 – d3wannabe 2016-03-11 11:53:04

相关问题