当前主流的搜索引擎的爬虫基本上都采用类似文本浏览器Lynx的技术,因此滥用Javascript代码可能会对搜索引擎的抓取操作造成不好的影响。例如,Google和Yahoo的官方文档中说:如果在html中过多的使用 JavaScript、Cookie、会话 ID(session ID)、框架(frame or iframe)、DHTML 或 Flash 等复杂功能会使搜索引擎抓取工具在抓取网站时可能会遇到问题。根据本人的Web数据提取经验,发现用Javascript实现如下功能时会给爬虫带来麻烦:
有些内容是采用Ajax异步方式从源站点下载的,而且是在用户进行界面操作时通过Javascript代码激发下载操作,普通的类似文本浏览器的网络爬虫根本没有能力模拟用户的界面操作;
有些超链接的导航能力完全是用Javascript模拟的,例如在HTML A元素中加一段onclick事件处理代码,点击超链接时,有Javascript代码进行页面导航;
有些页面上显示的多级菜单是用Javascript实现的,菜单的展现和消失都用Javascript控制,如果这些菜单激发的操作是导航到另外的页面,那么这些导航信息很难被爬虫抓取;
以上是一个不完全列表,是作者被人在设计网络爬虫时遇到的棘手问题。很多专家总结了一些针对Javascript的SEO策略,摘录如下:
绝对避免导航及其他链接使用JavaScript。导航和链接是搜索引擎抓取网页的赖以生存之本,如果搜索引擎无法抓取网页,则代表了网页不会出现在索引结果中,也就无从谈起排名了。
尽量避免对内容使用JavaScript。尤其是与关键词相关部分的内容,应该尽量避免使用JavaScript来展现,否则毫无疑问是要降低关键词密度的。
实在需要使用JavaScript的部分,将这部分JavaScript脚本放在一个或几个.js文件中,这样能够避免干扰到搜索引擎的抓取和分析
实在不能放在.js文件中的部分JavaScript脚本,将它们放在html代码的底端,< /body>之前,这样使搜索引擎分析网页时最后才会发现它,降低对搜索引擎的干扰
正面利用Javascript
因为普通的搜索引擎难于处理Javascript代码,可以正确利用这个特点屏蔽页面上一些不需要被搜索引擎索引的内容,这样,可以使页面关键词密度提高,这类信息可以称为“垃圾信息”,例如,广告、版权申明、大量导出链接、与内容不相关的信息等等。我们可以将这些垃圾信息通通扔进一个或数个.js文件中,从而降低对页面实质内容的干扰,提高关键词密度,向搜索引擎展示页面内容的核心。
网友评论