利用cheerio获取html代码中的图片地址和懒加载图片地址

electron yekong

使用前需要先安装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)
});
喜欢