gpt4 book ai didi

facebook-graph-api - Facebook 是否支持哈希爆炸#! Ajax 可抓取的网址?

转载 作者:行者123 更新时间:2023-12-04 02:17:43 24 4
gpt4 key购买 nike

Facebook 是否支持 Google 的 ajax 抓取规范,如果支持,您需要做什么来实现它?

我正在尝试让 Facebook 的“喜欢”按钮与此处定义的 AJAX 可抓取网址一起使用:code.google.com/web/ajaxcrawling/docs/specification.html

我有这个网址,我可以直接访问它并加载它。注意“#!”在网址中:

http://www.idkshouldi.com/?#!idkDetails_idkKey=agppZGtzaG91bGRpcmMLEiljb21faWRrc2hvdWxkaV93ZWJfc2VydmVyX2dhZV9vYmpfSWRrVXNlciIDamltDAsSKWNvbV9pZGtzaG91bGRpX3dlYl9zZXJ2ZXJfZ2FlX29ial9JZGtJdGVtGN6kBgw

当我“喜欢”这个页面时,它应该抓取这个“转义的片段”网址:

http://www.idkshouldi.com/?_escaped_fragment_=idkDetails_idkKey=agppZGtzaG91bGRpcmMLEiljb21faWRrc2hvdWxkaV93ZWJfc2VydmVyX2dhZV9vYmpfSWRrVXNlciIDamltDAsSKWNvbV9pZGtzaG91bGRpX3dlYl9zZXJ2ZXJfZ2FlX29ial9JZGtJdGVtGN6kBgw

为什么它不会抓取这个页面? Facebook linter 未正确抓取我的页面。如果在这里使用 Facebook linter 工具:developers.facebook.com/tools/debug

它不会正确抓取带有“#!”的启用 AJAX 的 URL在里面。这是谷歌的规范。 Facebook 的 lint crawler 需要做的是替换“#!”带有“_escaped_fragment_”。我的启用 AJAX 的链接似乎没有这样做。

最佳答案

这对我来说也是一个大问题,但不幸的是,Facebook 似乎不支持这种 Google URL 表示法。 Facebook 的爬虫/解析器不会从 hash bang (#!) 转换为 _escaped_fragment_ 格式的 URL。

像你一样,我在 Facebook 的 URL linter 上测试了我的页面,它只在动态原始页面中选取静态 Open Graph 标签,而不是我页面的 _escaped_fragment_ 服务器端变体中特定于页面的 Open Graph 标签。不幸的是,这意味着 Facebook 将我的 Open Graph 标签视为特定于站点的,而不是特定于页面的。

具有讽刺意味的是,这似乎不受支持,因为 Facebook 本身使用这种方法来允许 Google 的爬虫抓取 Facebook 页面。

一种可能对您有所帮助的潜在解决方法是:

1) 在 Facebook 链接中使用您的 _escaped_fragment_ 页面版本
2) 将自动重定向到您的 _escaped_fragment_ 变体到正确的版本。

这应该意味着 Facebook 将选择正确的元标记,用户将点击链接并最终进入正确的页面。这种方法的缺点是用户必须知道相当丑陋的 _escaped_fragment_ URL。换句话说,除非您在页面上添加某种“生成可共享链接”按钮,否则可能只有您自己知道。

Facebook 增加对此的支持肯定只是时间问题,因为单页哈希网站只会变得更加流行。

关于facebook-graph-api - Facebook 是否支持哈希爆炸#! Ajax 可抓取的网址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7933632/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com