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