首先,我想说我不确定在哪里发布这个但是它与编程有关。如果它在错误的位置我道歉并请让我知道我应该在哪里发布它。
在朋友墙上分享文章时,Facebook会抓取文章的缩略图。他们如何总是从文章中获得正确的缩略图?
例如,它不会抓取http://www.nytimes.com/2010/06/07/world/asia/07convoys.html?hp的徽标img元素,而是抓取与文章对应的正确图像元素。
我正在寻找类似的东西,并且想知道在这个例子中解析html找到图像的好方法。感谢。
答案 0 :(得分:32)
实际上,Facebook寻找缩略图的方式并不那么神奇。它会搜索一组<meta>
和<link>
标记,用于指定要使用的标题,说明和图像。
如果找不到它正在查找的任何<meta>
和<link>
标记,它基本上会要求用户选择适合的<img>
标记。
对于纽约时报,它使用以下内容:
<meta name="thumbnail" content="whatever.jpg" />
Facebook建议您使用<link>
标记代替缩略图。
<meta name="title" content="title" />
<meta name="description" content="description " />
<link rel="image_src" href="thumbnail_image" />
答案 1 :(得分:2)
他们并不总是抓住正确的图像,即使有一些好的逻辑。
在很多情况下,我看过一个可供选择的缩略图列表,这意味着Facebook的解析器认为它们具有同等的相关性。
我猜他们(可能还有其他的东西)看看dom结构并找到接近看似“可共享”内容的图片。
更新:
经过一些实证检验后,图像维度似乎发挥了重要作用。太小和太宽的图像不被视为缩略图。如果您的徽标大小合适,则希望它显示为缩略图之一。例如,尝试在http://www.e24.se上分享内容。
答案 2 :(得分:0)
这些只是猜测,因为我对Facebook的内部操作一无所知,但如果我从页面解析缩略图,我会考虑以下几点:
href
或alt
属性<img>
标记的位置越靠近相关内容越好,但可能并不总是适用于复杂的布局<img>
代码或附近的代码中缺少与广告相关的关键字(想象一下双击)另外,据我所知,Facebook元标记是相当新的,所以我的猜测是链接页面刮板仍然难以抓取图像;)但是如果你正在运行一个网站并希望Facebook抓住它当它刮擦你的页面时的正确信息我强烈建议实施它们。