【问题标题】:How to extract images from a webpage as Facebook does?如何像 Facebook 那样从网页中提取图像?
【发布时间】:2010-09-28 13:48:40
【问题描述】:

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

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

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

Facebook 是如何做到的?

【问题讨论】:

  • 我必须说这是一个好看的页面!

标签: php javascript ajax web-crawler


【解决方案1】:

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

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

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

【讨论】:

  • 这是有道理的,因为当我从自定义 CMS 发布到 Facebook 时,它会拾取所有图像,包括徽标。
【解决方案2】:

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

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

OGP 也被 LinkedIn、Google+ 和许多其他人使用。

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

【讨论】:

    【解决方案3】:

    我可以想象 Facebook 爬虫可以识别实际的内容部分,并从中选择图像。 Safari Reader functionality 使用了类似的功能。使用的软件是 Wordpress,它是最流行的博客软件,这可能会有所帮助。 Facebook 为该软件添加特定支持是一个快速的胜利。

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 2021-10-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-08
        • 2013-02-04
        • 2022-06-15
        • 2020-07-13
        • 2015-10-29
        相关资源
        最近更新 更多