【问题标题】:How Facebook parses blogspot.com open graph propertiesFacebook 如何解析 blogspot.com 开放图属性
【发布时间】:2012-10-06 20:06:28
【问题描述】:

blogspot.com 的某些页面不包含开放图标签,但 Facebook 对象调试器仍能正确解析开放图属性。它是如何获取open graph信息的?

例如,我在http://sushiwens.blogspot.com/ 源代码中看不到任何打开的图形元标记。但它被 facebook https://developers.facebook.com/tools/debug/og/object?q=http%3A%2F%2Fsushiwens.blogspot.com%2F 正确解析了

我需要在python中实现类似open graph parsing之类的功能,所以我需要知道怎么做。

【问题讨论】:

  • 只是猜测,服务器检查请求的用户代理并将打开的图形标头提供给机器人。

标签: facebook-opengraph blogspot


【解决方案1】:

我没有真正的消息来源来确定 facebook 是如何做到的,但 this site 可能会对你有所帮助。
我用他的想法用python开发了一个解析器。如果能帮到你,python项目是here

如果我尝试总结一个策略来获取没有og标签的数据:

  • 标题
    • 搜索标题标签
    • 在正文中搜索 h1
    • 在正文中搜索 h2 ...
  • 说明
    • 中搜索
    • 在正文中搜索可见文本(例如第一个

    • 搜索 是一种解决方案,但我不这样做:通常描述很糟糕,与链接的真实内容相比,与 twitter 的内容更相关。
  • 域名
    • 搜索
    • 搜索 og:url
    • 但我做的更简单:从目标链接中提取域(在 python 中:urlparse(url).netloc
  • 最后但同样重要的是:图片
    • 搜索
    • 解析所有标签的目标链接html并“排序”它们:
      • 小图像:一维
      • 不良比例图像:剩余的最长边/最短边的比例 > 3
      • 好图片:剩下的
    • 然后在好的图像中选择最大的图像。如果没有好的形象:坏的比例最大。否则:小图像中最大的。 (最大 = 最大宽度 x 高度)
    • 获取所有图像可能非常耗时!可以通过图像的第一个字节获取尺寸,但这是另一回事(参见第二个链接)

【讨论】:

  • 哎呀,我没看到帖子那么旧 ;-) 如果它对其他人有用,我会给出答案......但差不多 10 年后......(youtube.com/watch?v=CTUsFm0BAu8
  • 嗨,高炉。你是对的:我已经相应地编辑了答案。
猜你喜欢
  • 1970-01-01
  • 2020-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多