node中使用request获取html文本内容编码异常的问题?

在node环境中,使用request爬取一个网页时,响应的body编码异常?

代码如下:

const request = require('request')

function getGoods () {
    request('https://www.58moto.com/used-car/1470264', (err, res, body) => {
        console.log(body)
    })
}

getGoods()

浏览器中的响应:
image.png


实际打印结果:
image.png
实际打印部分内容:�z<[��zml�1;��g���J��4�~b��J��6^M=i���F}�\�e�ž�������������e�Lc�1Ӟ��M�ή�ׅFm:�=^㱩ZkG��l/L�T⏃���ͱ&�=,0���sc��������B}do�՘�ŅFs�ze�9^i<�����涽 �/4��,�:�=�n��W�/����{���#�OG�'?�F�tn��9{��Ql�i5�481�4f�믬�hNO7
���l6'��<?�����ܹ��zQ\�x�V�ͯ�ǎ/�=���/��>X����K�,޻�}���������:_������z檤���{��6�T=Ϛs�5׼Ϲ~��[~�y�g�Z��~������#��n̾<ԪO?<<���t}~�^_Zxu����B����c���CS������'��


这个被编码了的结果是怎么出现的?是哪种编码方式?

由于不清楚具体的编码方式,毫无头绪

阅读 670
2 个回答

问题已解决,换成axios就好了

你这拿到的是字节流,可以调用 toString 转成字符串

const request = require('request')

function getGoods () {
    request('https://www.58moto.com/used-car/1470264', (err, res, body) => {
        console.log(body.toString())
    })
}

getGoods()
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏