node-crawler爬虫实践
程序员文章站
2022-07-13 13:11:42
...
安装node 插件
cnpm i axios crawler
代码
function decode(str) {
// 一般可以先转换为标准 unicode 格式(有需要就添加:当返回的数据呈现太多\\\u 之类的时)
str = unescape(str.replace(/\\u/g, "%u"));
// 再对实体符进行转义
// 有 x 则表示是16进制,$1 就是匹配是否有 x,$2 就是匹配出的第二个括号捕获到的内容,将 $2 以对应进制表示转换
str = str.replace(/&#(x)?(\w+);/g, function($, $1, $2) {
return String.fromCharCode(parseInt($2, $1? 16: 10));
});
return str;
}
var c = new Crawler({
maxConnections: 100,
forceUTF8: true, // 解决中文字符乱码问题
callback: function (error, res, done) {
if (error) {
console.log(error);
return
}
let $ = res.$; // 使用 cheerio DOM
let title = $('#title').text()
let content = decode($('#content').html()) // 解析html实体编码
let params = {
type: 2,
title,
content,
}
axios.post(url, data).then(res => {
done()
})
}
});
c.queue(['http://www.xxxx.com/xxxx.html']);
上一篇: JS基础