架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 10126|回复: 0

node.js抓取gbk网站的页面

[复制链接]
发表于 2016-9-26 10:18:29 | 显示全部楼层 |阅读模式
我们码农网就是gbk的网页编码,如果直接抓取会出现乱码的现象,

因为node.js默认是utf-8格式,也就是抓取之后,会当作utf-8来处理,导致乱码。

需要转码一下!!

QQ截图20160926101452.jpg

代码:

  1. var http = require('http');
  2. var iconv = require('iconv-lite');    //解决编码转换模块
  3. var BufferHelper = require('bufferhelper')

  4. // Utility function that downloads a URL and invokes
  5. // callback with the data.
  6. function download(url, callback) {
  7.   http.get(url, function(res) {
  8.     var bufferHelper = new BufferHelper();
  9.     res.on('data', function (chunk) {
  10.       bufferHelper.concat(chunk);
  11.     });
  12.     res.on("end", function() {
  13.         //注意,此编码必须与抓取页面的编码一致,否则会出现乱码,也可以动态去识别
  14.         var result = iconv.decode(bufferHelper.toBuffer(),'GBK');
  15.         callback(result);
  16.     });
  17.   }).on("error", function() {
  18.     callback(null);
  19.   });
  20. }

  21. function Init(url)
  22. {
  23.     download(url, function(data)
  24.     {
  25.         console.log(data);
  26.     })
  27. }

  28. Init("http://www.itsvse.com");
复制代码


注意:需要引用iconv-lite和bufferhelper的包

npm install iconv-lite -g
npm install bufferhelper -g




上一篇:C#开发邮件的POP3客户端来收信
下一篇:discuz保持登陆状态的cookie(session)
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2026-11-10 04:55

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表