1

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

例如,我在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函数的东西,所以我需要知道怎么做。

4

1 回答 1

-1

我没有真正的来源来确定 facebook 是如何做的,但这个网站可能会对你有所帮助。
我用他的想法用python开发了一个解析器。如果它可以帮助你,python 项目就在这里

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

  • 标题
    • 搜索标题标签
    • 在正文中搜索 h1
    • 在正文中搜索 h2 ...
  • 说明
    • 在 <meta name="description"> 中搜索
    • 在正文中的可见文本中搜索(例如,第一个 <p>)
    • 搜索 <meta name="twitter:description"> 是一个解决方案,但我不这样做:通常描述很糟糕,与 twitter 的内容相关的更多,而不是链接的真实内容。
  • 域名
    • 搜索 <link rel="canonical">
    • 搜索 og:url
    • 但我做的更简单:从目标链接中提取域(在python中:urlparse(url).netloc
  • 最后但并非最不重要的:图片
    • 搜索 <link rel="image_src" href="图片网址" />
    • 解析所有 <img> 标签的目标链接 html 并“排序”它们:
      • 小图像:一维 <= 50px
      • 坏比率图像:剩余的比率最长边/最短边> 3
      • 好图片:剩下的
    • 然后在好的图像中选择最大的图像。如果没有好的形象:坏的比例最大。否则:小图像中最大的。(最大 = 最大宽度 x 高度)
    • 获取所有图像可能很耗时!可以使用图像的第一个字节获取尺寸,但这是另一回事(参见第二个链接)
于 2022-02-08T21:33:04.417 回答