Jsoup 解析Html网页

一、Jsoup 简介

jsoup 是一款 Java 的HTML 解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据,可以看作是java版的jQuery。

jsoup的主要功能如下:

§  从一个URL,文件或字符串中解析HTML;

§  使用DOM或CSS选择器来查找、取出数据;

§  可操作HTML元素、属性、文本;

jsoup是基于MIT协议发布的,可放心使用于商业项目。官方网站:http://jsoup.org/

二、解析遍历HTML文档

Jsoup处理HTML文件是,是将用户输入的HTML文档,解析转换成一个Document对象进行处理。Jsoup一般支持以下几种来源内容的转换。

§  解析一个html字符串

§  解析一个body片段

§  根据一个url地址加载Document对象

§  根据一个文件加载Document对象

(1)字符串解析

在处理一个html字符串。我们可能需要对其进行解析,并提取其内容,或校验其格式是否完整,或者想修改它,检查里面的div标签没有闭合。Jsoup可以帮助我们轻松的解决这些问题。比如:

String html = "<html><head><title>Firstparse</title></head>"

            +"<body><p>Parse HTML into a doc.</p></body></html>";

Document doc = Jsoup.parse(html);
(2)解析body片段
        假如我们现在有一个HTML片断 (比如. 一个 div 包含一对 p 标签; 一个不完整的HTML文档) 想对它进行解析。这个HTML片断可以是用户提交的一条评论或在一个CMS页面中编辑body部分。我们可以使用使用Jsoup.parseBodyFragment(String html)方法。

String html = "<div><p align="center"><imgalt="" width="60" height="80"src="/erp/UserFiles/Image/51.jpg" />这是P元素的内容</p>";

Document document = Jsoup.parseBodyFragment(html);

 看到这里可能会有疑问,这个和上面的html片段是一样的嘛。没错是一样的,parseBodyFragment 方法创建一个空壳的文档,并插入解析过的HTML到body元素中。假如使用正常的 Jsoup.parse(Stringhtml) 方法,通常也可以得到相同的结果,但是明确将用户输入作为 body片段处理,以确保用户所提供的任何糟糕的HTML都将被解析成body元素。

  Document.body()方法能够取得文档body元素的所有子元素,与doc.getElementsByTag("body")相同。
(3)从URL解析

有时候我们可能希望通过一个url地址,然后提取里面的内容,转换成document对象。我们以前可能是使用http client等模拟一个请求,然后取得返回内容等,使用Jsoup方便简单的解决这个问题。示例如下:

       Document document = Jsoup.connect("http://www.baidu.com").get();                    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值