如何像Facebook那样从网页中提取图像?

时间:2010-09-28 13:48:40

标签: php javascript ajax web-crawler

如果我在我的墙上插入这样的链接:

http://blog.bonsai.tv/news/il-nuovo-vezzo-della-lega-nord-favorire-i-lombardi-alluniversita/

然后facebook在帖子中提取图像,而不是网页中的第一张图片(例如图像徽标或其他小图片)!!

facebook如何做到这一点?

4 个答案:

答案 0 :(得分:1)

嗯,如果没有关于他们使用的算法的更多信息,就不可能说出来。

然而,通过查看页面的源代码,您可以看到,虽然Bossi的图像不是页面中的第一个图像,但它是div中的第一个“page_content”和“post_content”。也许Facebook知道博客系统(本例中为Wordpress)使用的HTML ID,并使用这些来查找实际上是页面内容一部分的第一个图像。

这实际上是个好主意,实质上是“语义网”的实现......

答案 1 :(得分:1)

正如其他人所说,我们不知道Facebook如何在没有任何相关元数据的情况下决定选择什么(尽管Sleske的猜测似乎合情合理;我也猜测他们会看到第一张大图),但你可以通过使用Open Graph Protocol标签,通过走正确的路线并简单地给Facebook(和类似的服务)添加关于您的页面的元数据来避免这种情况,例如,如果您想指定用于Facebook的特定图像,那么将此包含在您的头标记中:

<meta property="og:image" content="<your image URL>" />

领英,Google +和许多其他人也使用OGP。

如果您使用的是Wordpress,则可以使用an open graph plugin控制这些标记。其他系统可以手动或通过自己的插件来完成。

答案 2 :(得分:0)

我可以想象Facebook抓取工具可以识别实际的内容部分,并从中选择一个图像。 Safari Reader functionality使用了类似的功能。使用的软件可能有助于Wordpress,这是最受欢迎的博客软件。这是Facebook为这个软件添加特定支持的快速胜利。

答案 3 :(得分:0)

我的猜测是facebook已经建立了一些算法来区分html页面中的实际内容和其他数据。查看您提供的页面非常简单,因为包含页面内容的html元素具有id =“page_content”,这是不言自明的。