码迷,mamicode.com
首页 > Web开发 > 详细

NodeJS抓取Web页面的编码问题

时间:2015-01-05 23:10:40      阅读:269      评论:0      收藏:0      [点我收藏+]

标签:

  最近在做毕设需要用到的爬虫系统,页面抓取这一块使用的是NodeJS语言,在最开始写的页面抓取的程序中,针对gb2312编码的页面保存完后显示的是乱码,开始认为在用Java读取文件时进行一个编码转换工作就可以解决了,但是试了半天,编码只会越来越慢,后来猜想,NodeJS请求到的页面的Body传输过来的是二进制的流信息,如果采用错误的编码方式对二进制信息进行解码,那么得到的结果坑定是错误的,再将这种结果保存到文件中,结果肯定还是错的,所以,通过上述的方法,不可能得到正确的结果。

  后来的解决方法是,在NodeJS中,对二进制数据进行解码,通过正则表达式获取文件正确的编码,再用正确的编码对二进制数据进行解码,最终得到正确的结果。

  在请求页面信息时,有些网站由于页面内容过多,对页面中的内容进行了压缩,可以通过Headers[‘content-code‘]查看页面压缩所使用的压缩方法,针对这种页面,在解析前,必须先对流信息进行解压缩,得到完整的流信息后,再采用上述的方法对信息进行解码操作。

  NodeJS中关于编码操作,使用的是iconv-lite库,压缩与解压缩采用的是zlib库。

NodeJS抓取Web页面的编码问题

标签:

原文地址:http://www.cnblogs.com/byheart/p/4204697.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!