【问题标题】:Why do search engine crawlers not run javascript? [closed]为什么搜索引擎爬虫不运行 javascript? [关闭]
【发布时间】:2013-10-17 17:22:15
【问题描述】:

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

我想知道为什么爬虫不运行 javascript 来获取 渲染页面 并在其上编制索引。这背后有什么原因吗?还是未来可能出现的搜索引擎缺少的功能?

【问题讨论】:

  • Google 已经运行了 javascript。
  • @LoïcFaure-Lacroix 他说的是网络爬虫,我一开始也是这么想的
  • @JayHarris GoogleBot 会这样做。
  • @Loïc Faure-Lacroix:你有官方文档的链接吗?谢谢。
  • 这个问题似乎是题外话,因为它是关于 SEO

标签: javascript ajax search-engine google-crawlers


【解决方案1】:

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

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

另一个问题是导航

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

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

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

这是一个链接:

GoogleBot smarter:它写于 2010 年,我们可以期待网络爬虫从那时起变得更加聪明。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-23
        • 2011-05-14
        • 2017-09-23
        • 2011-12-08
        • 1970-01-01
        相关资源
        最近更新 更多