使用前需要先安装cheerio。
因为需要写一个单页模板助手,使用cheerio解析html数据,获取img标签,提取图片里面的src以及懒加载字段data-lazy-src里面的图片url 在获取图片地址的时候,有些地方是用的base64图片,这些图片不需要下载我们过滤掉。
封装代码
export function getImgList(i, el) {
var strbase = new RegExp("data:image");
var list = []
var imglist = ['.jpg', '.png', '.jpeg', '.gif', '.svg', '.eot', '.woff', 'ttf']
if (el.attribs.src) {
imglist.forEach((type) => {
var str = new RegExp(type);
if (str.test(el.attribs.src) && !strbase.test(el.attribs.src)) {
list.push(el.attribs.src)
}
});
}
if (el.attribs['data-lazy-src']) {
console.log(el.attribs['data-lazy-src'])
imglist.forEach((type) => {
var str = new RegExp(type);
if (str.test(el.attribs['data-lazy-src']) && !strbase.test(el.attribs['data-lazy-src'])) {
list.push(el.attribs['data-lazy-src'])
}
});
}
}
使用
var $ = cheerio.load(that.data);
// 处理img
$('img').map(function (i, el) {
that.imglist = getImgList(i, el)
});