ajax - 当 Googlebot 请求 `?_escaped_fragment_=` URL 时,它如何知道网络服务器没有隐藏?

标签 ajax googlebot google-crawlers

关于 Google 的 AJAX 抓取规范,如果服务器为 #! 返回一件事(即一个 JavaScript 重的文件)当 #! 发送到 Googlebot 的 URL 和其他内容(即页面的“html 快照”)时替换为 ?_escaped_fragment_= ,这对我来说就像伪装。毕竟,Googlebot 如何确定服务器为 #! 返回善意等价物和 ?_escaped_fragment_=网址。然而,这正是 AJAX 抓取规范实际上告诉网站管理员要做的。我错过了什么吗? Googlebot 如何确定服务器在两种情况下都返回相同的内容?

最佳答案

爬虫不知道。但是,即使对于返回纯 ol' html 的站点,它也永远不会知道 - 编写基于爬虫使用的 http header 或已知 IP header 隐藏站点的代码非常容易。

请参阅此相关问题:How does Google Know you are Cloaking?

大部分看起来像是猜想,但似乎有各种适当的检查,在欺骗普通浏览器标题和实际真人查看页面之间有所不同。

继续猜想,谷歌的程序员当然有能力编写一种爬虫形式来检索用户所看到的内容——毕竟,他们有自己的浏览器可以做到这一点。一直这样做会占用大量 CPU,但偶尔进行抽查可能是有意义的。

关于ajax - 当 Googlebot 请求 `?_escaped_fragment_=` URL 时,它如何知道网络服务器没有隐藏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8599688/

相关文章:

http - 如何设置 Cloudflare 防火墙以阻止假冒的 Google 机器人

php - Robots.txt 和元数据标记是否足以阻止搜索引擎索引依赖于 $_GET 变量的动态页面?

javascript - 为什么搜索引擎爬虫不运行 javascript?

javascript - AJAX + RAILS ShowTooltip 窗口效果问题...Rails 中的路由错误

javascript - 条件 addClass 不适用于具有相同类的每个元素

javascript - 在本地服务器而非实时服务器上发送 AJAX/PHP 表单

seo - 网站爬虫从单个页面返回多个 404,其中在 url 的末尾附加了内部 href?有关上下文,请参阅正文

ajax - Vue.JS 是否支持 AJAX http 调用?

seo - 谷歌网络工具 : Fetch and Render

seo - 为什么 Googlebot 按 URL 长度的升序遍历新添加的站点?