0

当您在 facebook 中键入链接时,您可以看到该链接的标题、站点名称、描述和图像。我所知道的是 facebook 使用两种方法来获取链接信息:

1-使用og标签

2-使用 html 的 head 标签内的元标签。

但是有些网站例如没有og关于描述的任何标签或元标签,而 facebook 显示其描述和标题。

我的问题,如果网站没有任何og标签或元标签,它从哪里获取描述信息?

例如,当我在 facebook 帖子中发布此链接时,http://php.net/我可以看到描述出现,尽管我在页面的源中找不到任何og:description标签或任何元标签。另外,如果您将此问题的链接发布到 facebook,您可以看到问题本身出现,facebook 是如何做到的?

4

3 回答 3

1

By analyzing the site, obviously this is an imperfect procedure, so Facebook recommends using og tags so the site appears in the post exactly as you want to.

于 2013-05-13T19:41:53.140 回答
1

技术上可以嗅探用户代理并检测 Facebook 是否正在查看页面,然后有条件地呈现og源中的标签。

例如,我个人对普通用户隐藏了所有 Facebook 相关标签。通过嗅探用户代理,我只在 Facebook 查看我的网站时显示 Facebook 标签。我选择这条路线的原因是为了防止 W3C 验证失败(我就是这样)并防止普通访问者的 HTML 膨胀。这只是我想要如何做的偏好,并不是天生对或错。

换句话说,仅仅因为您没有og在网站的来源中看到标签并不意味着当 Facebook 查看同一网站的来源时它们不会呈现给 Facebook。

于 2013-05-13T20:11:48.320 回答
0

我假设他们正在获取 URL 中的页面 HTML 并对其进行解析以获取通常的嫌疑人:

  • 标题来自<title>
  • <title>来自可能或某个<head>标签的站点名称
  • 描述来自<meta name="description" />
  • 来自任何<img>标签的图像

这是您应该遵循w3c 标准的另一个原因,这样第三方网站(如 Facebook)就可以通过编程方式读取您的 HTML,而无需就 HTML 的结构向您咨询。

推荐的 og 标签是Facebook 设置的另一个标准,它不仅可以帮助他们阅读页面的标题和图像等项目,还可以设置 Open Graph对象操作的标准。

于 2013-05-13T19:59:59.087 回答