Node.js爬取网页编码异常如何解决?

Node.js爬取网页编码异常如何解决?

node中解决使用request爬取网页编码异常的问题

在node环境中使用request爬取网页,响应的body编码异常,导致打印的结果无法正常显示。代码如下:

const request = require('request');

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

getGoods()

浏览器中的响应是正常的,而实际打印的结果却是一串乱码,这是由于响应的body编码异常造成的。

解决方法

为了解决这个问题,可以使用axios库来进行爬取,代码如下:

const axios = require('axios');

async function getGoods() {
    const res = await axios.get('https://www.58moto.com/used-car/1470264');
    const html = res.data;
    console.log(html);
}

getGoods();

使用axios爬取网页时,返回的body已经经过了解码处理,因此打印的结果可以正常显示。

以上就是Node.js爬取网页编码异常如何解决?的详细内容,更多请关注其它相关文章!