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爬取网页编码异常如何解决?的详细内容,更多请关注其它相关文章!