Google的抓取工具会解释Javascript吗?如果我通过AJAX加载页面怎么办?

时间:2010-01-14 02:44:43

标签: web-crawler

当用户进入我的页面时,我必须进行另一次AJAX调用...以在div中加载数据。 这就是我的应用程序的工作方式。

问题是......当我查看此代码的来源时,它不包含该AJAX的来源。当然,当我做wget URL时......它也没有显示AJAX HTML。有道理。

但谷歌怎么样? Google能否抓取内容,就好像它是一个浏览器一样?如何让Google像对待用户一样抓取我的页面?

8 个答案:

答案 0 :(得分:17)

尽管有上述答案,显然确实解释JavaScript,according to Matt Cutts

  

“有一段时间,我们在JavaScript中扫描,我们正在寻找链接.Google已经变得更聪明,可以执行一些JavaScript。我不会说我们执行所有JavaScript,所以有一些条件我们不执行JavaScript。当然有一些常见的,众所周知的JavaScript之类的东西,比如谷歌分析,你甚至不想执行,因为你不想尝试从Googlebot生成幻影访问你的谷歌分析”

(为什么回答一个已回答的问题?主要是因为我刚刚看到它,因为今天发布的重复问题,并且在这里没有看到此信息。)

答案 1 :(得分:10)

实际上...... Google确实有一个抓取Ajax应用程序的解决方案......

http://code.google.com/web/ajaxcrawling/docs/getting-started.html

答案 2 :(得分:5)

已更新:this question about "Ajax generated content, crawling and black listing"的回答中我找到了关于the way Google crawls AJAX requests的文档,该文档是关于Making AJAX Applications Crawlable的文档集的一部分。

简而言之,这意味着您需要使用<a href="#!data">...</a>而不是<a href="#data">...</a>,然后为网址path/to/path?_escaped_fragment_=data提供真实的服务器端答案。

还要考虑使用<link/>标记为抓取工具提供SEO友好内容的提示。 <link rel="canonical"/>this article解释了一下,是一个很好的候选人

注意:我从https://stackoverflow.com/questions/10006825/search-engine-misunderstanting/10006925#comment12792862_10006925得到答案,因为我似乎无法在此删除。

答案 3 :(得分:2)

我在这种情况下所做的事情总是最初使用基于Ajax调用正在执行的任何默认参数的内容填充页面。然后我只使用ajax javascript对页面进行更新。

答案 4 :(得分:1)

正如其他答案所说,Google的抓取工具(我相信其他搜索引擎的抓取工具)解释Javascript - 你应该尝试区分用户 - 代理商等(存在降低或阻止您的网站向用户和机器人展示不同内容的风险)。相反,为无论出于何种原因阻止Javascript的访问者提供一些(可能是最小的)内容级别(包括原因是“成为机器人”的情况;-) - 毕竟,这就是noscript标签存在的原因......为了使其非常好,非常很容易提供这样的“最低级别的内容”(或者,如果您愿意,可以提供超过最小的内容;-)给非Javascript的用户!

答案 5 :(得分:0)

Web抓取工具很难用ajax和javascript动态加载内容。此网站有一些想法可以帮助您了解如何帮助您为自己的网站编制索引http://www.softwaredeveloper.com/features/google-ajax-play-nice-061907/

答案 6 :(得分:0)

如果你使你的页面在不使用javascript的情况下使用OR(即如果javascript失败,则自动或通过“display as plain html”链接回退到使用框架或标准GET / POST请求到服务器),搜索引擎抓取页面会容易得多。

他们抓取“动态”内容是有道理的 - 因为它只是......动态。

我的理解是,在大多数情况下,Google不会抓取客户端动态内容。

答案 7 :(得分:0)

现在它看起来像谷歌机器人不仅限于像浏览器这样的简单lynx

Google bot尝试抓取Humanly visibleHumanly contrasting文字,以便在页面的不同部分中发挥重要作用。因此,它会像Layout Engine一样呈现页面,就像FF或Chrome等其他浏览器一样。

甚至可能有v8 Javascript引擎支持。并且机器人可能会加载页面并等到dom为ready,甚至可能等待几秒钟以使页面进入稳定的视图。然后裁剪对比文本。