14

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

我想知道为什么爬虫不运行 javascript 来获取呈现的页面并在其上建立索引。这背后有什么原因吗?或者它是未来可能出现的搜索引擎的缺失功能?

4

3 回答 3

1

阅读纯 HTML比等待/调用 javascript 函数等然后注意页面的设置方式要快得多。我认为这是主要原因。

另一个可能是整个爬虫都是自动化的——所以,再一次,阅读静态页面更容易,也更有意义。与 javascript 一样,页面的内容可能每秒都在变化等,使爬虫“困惑”

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

于 2013-10-10T05:15:02.303 回答
1

尽管 GoogleBot 实际上确实可以处理用 js 编写的网站。ajax 网站最大的问题是即使 GoogleBot 可以执行 js 并处理 ajax 请求。

网络爬虫完全不可能知道页面何时完成加载。出于这个原因,网络爬虫可以在开始执行 ajax 请求之前加载页面并索引该页面。假设脚本将在页面滚动时执行。谷歌机器人很可能不会触发所有可能的事件。

另一个问题是导航

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

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

也就是说,脚本将会运行。但不确定爬虫是否会在处理完所有脚本后对页面进行索引。

这是一个链接:

GoogleBot smarter:它是在 2010 年编写的,我们可以预期网络爬虫从那时起变得更加智能。

于 2013-10-10T05:17:30.527 回答
0

使用爬虫脚本阅读页面更加困难,因为它完全是关于动态更改内容。爬虫不仅关心第一次站点访问,他们每周两次以快速模式重新检查索引页面,简单地以“发现 10 个差异”的方式比较内容和链接更改。使用脚本重新检查页面对于万维网中的爬虫来说太痛苦且成本太高。

于 2013-10-10T05:22:09.740 回答