为什么搜索引擎抓取工具不能运行javascript?

时间:2013-10-10 05:05:56

标签: javascript ajax search-engine google-crawlers

我一直在使用一些高级javascript应用程序,使用大量的ajax请求来呈现我的页面。要使应用程序可以抓取(通过谷歌),我必须关注https://developers.google.com/webmasters/ajax-crawling/?hl=fr。这告诉我们要做的事情:重新设计我们的链接,创建HTML快照,......以使网站可以搜索。

我想知道为什么抓取工具不运行javascript来获取 呈现的页面 并对其进行索引。这背后有原因吗?或者它是未来可能出现的搜索引擎的缺失特征?

3 个答案:

答案 0 :(得分:1)

阅读纯HTML的方式更快比等待/调用javascript函数等,然后发出通知,如何设置页面。我认为这是主要原因。

另一个可能是整个爬行的东西是自动化的 - 所以,再次,阅读静态页面要容易得多,并且更有意义。与javascript一样,页面内容可能每秒都会发生变化等,使得抓取工具“困惑”

考虑到,这还没有在搜索引擎中实现,我认为它不会在不久的将来出现。

答案 1 :(得分:1)

即使GoogleBot确实处理用js编写的网站。 ajax网站的一个大问题是,即使GoogleBot可以执行js并处理ajax请求。

网页抓取工具不可能知道网页何时完成加载。因此,Web爬网程序可以在开始执行ajax请求之前加载页面并为页面编制索引。假设脚本将在页面滚动时执行。谷歌机器人很可能不会触发所有可能的事件。

另一个问题是导航

由于导航可以在没有页面重新加载的情况下完成,因此一个URL可以映射到多个“视图结果”。出于这个原因,谷歌要求开发人员使用静态页面保留页面副本,以支持那些无法访问的页面。他们将被编入索引。

如果您的网站可以通过完全限定的网址访问每个网页。那么你不应该为你的网站编制索引问题。

也就是说,脚本将会运行。但是,在完成处理所有脚本后,抓取工具不确定是否会对页面编制索引。

这是一个链接:

GoogleBot smarter:它是在2010年写的,我们可以期待网络浏览器从那时起变得更聪明。

答案 2 :(得分:0)

使用抓取程序的脚本读取页面更加困难,因为它完全是关于动态更改内容的。爬虫不仅关心第一次网站访问,他们每周重新检查索引页面 - 快速模式下的两个,简单地比较内容和链接更改的“找到10个差异”。使用脚本重新检查页面对于世界网络中的抓取工具来说太痛苦且成本太高。