爬虫之gbk

爬虫的时候,有些页面gbk编码,直接request会导致乱码。

解决方案:流式爬取html,转化为utf8

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
const cheerio = require('cheerio')
const Iconv = require('iconv-lite')
const rp = require('request-promise')


async function getHtml(url) {
let res = await rp({
url: url,
encoding: null, // 指定encoding为null,获取流式数据
})

return cheerio.load(Iconv.decode(res, 'gb2312').toString())
}


getHtml(url)
.then(($) => {
// $用来操作dom对象
})

这样就可以通过$来获取数据了。