Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么搜索引擎爬虫不运行javascript?_Javascript_Ajax_Search Engine_Google Crawlers - Fatal编程技术网

为什么搜索引擎爬虫不运行javascript?

为什么搜索引擎爬虫不运行javascript?,javascript,ajax,search-engine,google-crawlers,Javascript,Ajax,Search Engine,Google Crawlers,我一直在使用大量ajax请求处理一些高级javascript应用程序来呈现我的页面。为了使应用程序(通过谷歌)可爬行,我必须遵循。这告诉我们要做一些类似的事情:重新设计我们的链接,创建html快照,。。。使网站可搜索 我想知道为什么爬虫程序不运行javascript来获取呈现的页面及其索引。这背后有什么原因吗?或者这是搜索引擎在未来可能会缺少的功能?阅读纯HTML比等待/调用javascript函数等然后通知页面的设置方式要快得多。我认为这是主要原因 另一个可能是整个爬行过程都是自动化的——所以

我一直在使用大量ajax请求处理一些高级javascript应用程序来呈现我的页面。为了使应用程序(通过谷歌)可爬行,我必须遵循。这告诉我们要做一些类似的事情:重新设计我们的链接,创建html快照,。。。使网站可搜索


我想知道为什么爬虫程序不运行javascript来获取呈现的页面及其索引。这背后有什么原因吗?或者这是搜索引擎在未来可能会缺少的功能?

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

另一个可能是整个爬行过程都是自动化的——所以,再次强调,阅读静态页面要容易得多,也更有意义。与javascript一样,页面内容可能每秒都会发生变化,等等,这会使爬虫“感到困惑”


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

尽管谷歌机器人实际上处理的是用js编写的网站。ajax站点的最大问题是,即使GoogleBot可以执行js并处理ajax请求

web爬虫不可能确切地知道页面何时完成加载。因此,web爬虫可以在开始执行ajax请求之前加载页面并对页面进行索引。假设脚本将在页面滚动上执行。谷歌机器人很可能不会触发所有可能的事件

另一个问题是导航

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

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

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

这里有一个链接:


字体这本书写于2010年,我们可以预期,从那时起,网络爬虫变得更加聪明

使用爬虫脚本阅读页面比较困难,因为它都是关于动态更改内容的。爬虫不仅关心第一次访问网站,而且每周都会以快速的方式重新检查索引页面,只需对内容和链接更改进行“找出10个差异”的比较。用脚本重新检查网页对世界网络中的爬虫来说太痛苦和昂贵了。

谷歌已经运行javascript了。@LoïcFaure Lacroix他说的是网络爬虫,我当时也这么认为first@JayHarris谷歌机器人就是这样做的。@Loïc Faure Lacroix:你有关于它的官方文档的链接吗?谢谢。这个问题似乎离题了,因为它是关于搜索引擎优化的