ajax的弊端 爬虫难以爬取 搜索引擎不易收录 解决办法 pajax hijax

Javascript对搜索引擎爬虫的影响以及SEO策略

当前主流的搜索引擎的爬虫基本上都采用类似文本浏览器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文件中,从而降低对页面实质内容的干扰,提高关键词密度,向搜索引擎展示页面内容的核心。

如果想挖掘Javascript管理的内容该怎么办

主流网络爬虫并不代表一切,因为Javascript管理的内容仍然蕴藏很多价值点,例如,有人专门抓取/提取和统计广告和相关的信息,这类信息一般存放在HTML框架(FRAME/IFRAME)中,而且大量使用Javascript代码。有些专业的网络爬虫拥有完整的Javascript引擎和HTML页面展现引擎,因此,从理论上讲,凡是用户能够看到和操作的内容,这类网络爬虫都能够看到和提取。MetaSeeker工具包就具有这个能力,当然MetaSeeker工具包的功能远不止这个,是一整套Web信息提取、筛选和存储工具,也是Web元数据整理工具。

针对ajax请求浏览器链接固定的问题:

  1. 可以用History API,在不刷新页面的情况下,改变浏览器地址栏显示的URL(准确说,是改变网页的当前状态),参考这个链接
  2. 使用pajax技术来监听页面上的url发送ajax请求,参考这个链接
  3. 使用hijax技术,和前两者相似,参考这个链接

github就采用了上面的方法来无刷新跳转页面,用户体验良好

当然前端用这些技术,后台需要做相应的调整,比如tomcat可以在过滤器里解析url获取ajax请求参数,php可以使用路由技术来解析编入普通url的ajax请求

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值