https 远程获取内容的 编码问题
发布于 9 年前 作者 dingyong666 3731 次浏览 最后一次编辑是 8 年前 来自 问答

var https = require(‘https’); var punycode = require(‘punycode’) https.get({ host: ‘sp0.baidu.com’, path: ‘/8aQDcjqpAAV3otqbppnN2DJv/api.php?query=202.194.101.150&co=&resource_id=6006’ }, function(res) { res.on(‘data’, function(d) { d.toString(‘utf8’,0,d.length) });

}).on(‘error’, function(e) { console.error(e.toString()); });

网页的 代码返回的 是个 gbk的编码 , res.on 返回的 是个 buffer 还不知道 是个上面 编码 ,utf8 转出来 中文乱码 ,求如何 解决,还是 必须 用 其他的 爬虫 模块

7 回复

用 request 这个库,直接使用 https 模块太烦了

不用了 ,明显是 百度的接口坑爹!!!换api了 。

@alsotang request 换个这个后 还是 乱码 !!百度真是坑爹 ,就不能把中文转一下码。。

用 superagent 然后加一个 superagent-charset

.charset(‘gbk’)

@magicdawn 用 superagentparse…

  1. superagentparse 可以获取 buffer
  2. superagentparse 用的是 superagent 原生的 parse 方法。。。

https://github.com/alsotang/superagentparse

用 iconv-lite 转码

回到顶部