我正在处理 AJAX 可抓取 ( Google AJAX-crawling) 网站,但有些事情我不清楚。在应用程序的后端,我过滤掉 _escaped_fragment_
参数并按预期返回 HTML 快照。
如下所示手动调用 URL 时没有问题:
(1) animals#!dogs
(2) animals?_escaped_fragment_=dogs
当在选项 (1) 中查看页面源时,内容是动态加载的,而在选项 (2) 中,页面源包含 html 快照。到目前为止,一切都很好。
问题是,当按照建议(Google Fetch)使用 Google 抓取时,蜘蛛仅似乎抓取选项(1),就好像 hashbang(#!)永远不会被 AJAX 转换一样-爬虫。即使在处理 _escaped_fragment_
的函数中对 die("AJAX test);
进行硬编码,这也不会反射(reflect)在蜘蛛生成的结果中。
到目前为止,我已经根据 Google 的指导方针完成了所有工作,我对这个问题的唯一线索是在 Google 论坛的一个子页面上找到的:Fetch as Google ignoring my hashtag .如果是这种情况,那就意味着在更改生效并且页面重新编入索引之前,没有准确的方法来测试 Google 机器人会看到什么?
其他页面如How to Test If Googlebot Can Access Your AJAX Content并且 Google 页面本身建议这可以使用 Google Fetch 进行测试。
这些信息似乎自相矛盾,我不知道我的 AJAX 内容是否会被 Google 机器人正确抓取。希望对这个问题有更多了解的人可以帮助我。
最佳答案
散列刘海已被废弃。 PUSH states是更友好的选择。
关于php - AJAX 爬虫(hashbang 转换),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28589167/