使用Jsoup解析出html中的img元素
jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
博客项目有个需求。展示博客列表的时候,显示一些博客里的图片,增强用户体验;
这里的话,有两种方案,第一种 是在后台处理,把解析好的图片存集合里,然后转发到页面,遍历显示;还有一种是把博客内容送到页面,用Jquery处理。
我考虑了下。还是在后台处理好比较好,因为项目本身用到了 cnd加速,所以在前端处理反而影响效率。
在后端处理,可以使用Jsoup,很方便;
Jsoup主页:http://jsoup.org/
maven地址:
1 <dependency> 2 <groupId>org.jsoup</groupId> 3 <artifactId>jsoup</artifactId> 4 <version>1.10.2</version> 5 </dependency>
这里给下关键代码:
1 for(Blog blog:blogList){ 2 List<String> imagesList=blog.getImagesList(); 3 String blogInfo=blog.getContent(); 4 Document doc=Jsoup.parse(blogInfo); 5 Elements jpgs=doc.select("img[src$=.jpg]"); // 查找扩展名是jpg的图片 6 for(int i=0;i<jpgs.size();i++){ 7 Element jpg=jpgs.get(i); 8 imagesList.add(jpg.toString()); 9 if(i==2){ 10 break; 11 } 12 } 13 }
主要涉及到一些选择器。不难。大家可以参考下官方文档。或者百度很容易上手。