JSoup入门笔记--------java HTML 解析库

某些情况下,我们会使用Java获取网页的内容,并根据网页的内容得到特定标签的数据。例如得到网页中所有的超链接。一般情况下

URL url = new URL(strUrl);  
BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));  


上面一段代码可以让我们获取网页的内容,然后使用正则表达式匹配想要的内容。上面的方法很直观,但也比较繁琐。

JSoup是一款HTML解析器,他的主要功能有

  1.    从一个URL,文件或字符串中解析HTML;
  2.    使用DOM或CSS选择器来查找、取出数据;
  3.    可操作HTML元素、属性、文本;

下载地址为:http://jsoup.org/

下面介绍JSoup的基本使用方法:


1、解析一段HTML文本
Document doc = Jsoup.parse(html);  //html为一段html文本  如:html = "<head><title>hello</title></head><body>document string</body>"
   或者可以将直接连接URL获取网页内容。
Document doc = Jsoup.connect(url).get();

其中Document代表文档对象。

2、使用选择器查找特定的数据
下面这行代码可以查找class属性为item的元素。JSoup中有Elements和Element两个常用的类。其中Elements类是Element对象的集合,实现了迭代器,可以使用for each 迭代Elements元素
Elements items = doc.getElementsByClass("item"); //class = item
另外还可用getElementById 等进行选择。


3、针对特定的Element得到文本和属性
link.attr("href");
link.getElementsByTag("span").get(0).text();
如上面第一行得到link元素的href属性。
第二行则选择link元素中的Tag为span的元素,并读取第一个span元素包含的文本

附:JSoup文档中CSS选择器的示例

File input = new File("/tmp/input.html");
Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/");

Elements links = doc.select("a[href]"); // a with href
Elements pngs = doc.select("img[src$=.png]");
  // img with src ending .png

Element masthead = doc.select("div.masthead").first();
  // div with class=masthead

Elements resultLinks = doc.select("h3.r > a"); // direct a after h3



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值