Web crawler 做谷歌';什么是爬虫解释Javascript?如果我通过AJAX加载一个页面呢?

Web crawler 做谷歌';什么是爬虫解释Javascript?如果我通过AJAX加载一个页面呢?,web-crawler,Web Crawler,当用户进入我的页面时,我必须进行另一个AJAX调用…以在div中加载数据。 这就是我的应用程序的工作原理 问题是…当我查看此代码的源代码时,它不包含该AJAX的源代码。当然,当我使用wget URL时,它也不会显示ajaxhtml。有道理 但是谷歌呢?谷歌能像浏览器一样抓取内容吗?如何让谷歌像用户看到的那样抓取我的页面?更新:从我找到的这个文档的答案来看,它是关于的文档集合的一部分 简言之,这意味着您需要使用而不是,然后为URL路径/to/path?\u转义\u片段=data提供真正的服务器端答

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

问题是…当我查看此代码的源代码时,它不包含该AJAX的源代码。当然,当我使用wget URL时,它也不会显示ajaxhtml。有道理


但是谷歌呢?谷歌能像浏览器一样抓取内容吗?如何让谷歌像用户看到的那样抓取我的页面?

更新:从我找到的这个文档的答案来看,它是关于的文档集合的一部分

简言之,这意味着您需要使用
而不是
,然后为URL
路径/to/path?\u转义\u片段=data
提供真正的服务器端答案

也考虑一个标签,为爬虫提供一个对SEO友好内容的提示。这就解释了一点,他是一个很好的候选人


注意:我的答案来自:因为似乎我不能在这里删除我的。

网络爬虫很难使用ajax和javascript动态加载内容。本网站提供了一些想法,向您展示了如何帮助谷歌为您的网站编制索引,前提是您的页面可以使用或不使用javascript(即,如果javascript自动或通过“显示为纯html”链接失败,则返回使用框架或标准的获取/发布服务器请求),搜索引擎将更容易抓取页面

对他们来说,不抓取“动态”内容是有道理的——因为它就是……动态的


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

在这种情况下,我所做的通常是根据Ajax调用所做的任何操作的默认参数,在页面中填充内容。然后我只使用ajax javascript对页面进行更新。

正如其他答案所说,谷歌的爬虫(我相信其他搜索引擎的爬虫)不会解释javascript——你不应该试图通过用户代理或类似的方式进行区分(由于向用户和机器人呈现不同的内容,您的网站可能会被降级或阻止)。相反,无论出于何种原因(包括原因是“成为机器人”的情况),请向Javascript被阻止的访问者提供一些(可能是最低级别的)内容--毕竟,这正是标签存在的原因…让它非常、非常容易地向非Javascript用户提供这样的“最低级别的内容”(或者,如果您愿意的话,更简单;-)事实上…谷歌确实有一个抓取Ajax应用程序的解决方案


尽管有上述答案,显然它在某种程度上解释了JavaScript:

"有一段时间,我们在JavaScript中进行扫描,并寻找链接。谷歌在JavaScript方面变得更聪明了,可以执行一些JavaScript。我不会说我们执行所有JavaScript,所以有些情况下我们不执行JavaScript。当然,也有一些常见的、众所周知的JavaScript,比如Google Analyztics,你甚至不想执行它,因为你不想尝试从谷歌机器人生成虚拟访问到你的谷歌分析”


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

现在看来谷歌机器人不仅仅局限于简单的
lynx
浏览器

谷歌机器人试图抓住
人性化可见的
人性化对比的
文本,以在页面的不同部分赋予重要性。因此,它使用
布局引擎
呈现页面,就像FF或Chrome等浏览器一样


它甚至可能有
v8
Javascript引擎支持。机器人可能会加载页面并等待dom准备就绪,甚至可能会等待几秒钟页面进入稳定视图。然后裁剪对比文本。

如下面的问题所述,谷歌现在支持Javascript,这个答案已经过时了ed.See:答案过时了,现在可以解释了。.官方帖子:这个问题更适合于;这也不是JS或AJAX问题;顺便说一句,答案可以通过搜索引擎找到,例如谷歌: