java 基于 Jsoup 抠取富文本中的url 图片链接

	上个项目写小程序的时候,需要抠取富文本中的图片,作为文章封面展示。最开始没考虑周全,根据http或者https前缀和指定图片后缀去抠取图片。最后发现有很多图片无法抠取。后面转换思路,根据img  标签来抠取图片,方便了很多,而且都能抠出来,下面小编贴出实现代码。这儿只做了图片链接的抠取,过滤了base64图片的情况。如果读者需要抠取其他的标签,如:视频,链接。。。。只需要按相应的规则进行抠取即可。

代码实现

package com.dftcmedia.tckk.microservice.sskx.microapp;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

public class TestJsoup {
    public static void main(String[] args) {
        String content="富文本內容";
        List<String> imgUrls = parseImg(content);
        for (String imgUrl : imgUrls) {
            System.out.println(imgUrl);
        }
    }

    public static List<String> parseImg(String content){
        Element doc = Jsoup.parseBodyFragment(content).body();
        Elements elements = doc.select("img[src]");
        List<String> imgUrls = new ArrayList<>(elements == null ? 1 : elements.size());
        for (Element element : elements) {
            String imgUrl = element.attr("src");
            if(Objects.nonNull(imgUrl)){
                String substring = imgUrl.substring(0, 4);
                if("http".equals(substring)){
                    imgUrls.add(imgUrl);
                }
            }
        }
        return imgUrls;
    }
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值