介绍
Jsoup用于解析html页面,对于爬虫来说,会有大量的html页面反馈回来,解析出特定的信息和内容是非常繁琐的,Jsoup是解析html的神奇工具,可以大大减少工作量
使用方式
- Jsoup将html封装成为document,操作起来像 js 和 jqurey 一样,可以使用document.getElementById()、document.getElementsByTagName()等等一系列命令都可以在jsoup中使用
- 具有完备的 api 文档
地址:https://jsoup.org/apidocs/org/jsoup/nodes/Element.html
ps:可以利用浏览器的翻译变成中文哦~ - maven依赖
<!-- html页面解析依赖 -->
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.7.2</version>
</dependency>
示例
//将html页面解析成document
Document userDocument = Jsoup.parse(html);
//获取所有tagname为table的元素
Elements tableElements = userDocument.getElementsByTag("table");
for(Element tableElement : tableElements){
//获取所有table元素下的子元素(不包括孩子的孩子)
Elements tbodyElements = tableElement.children();
for(Element tbodyElement : tbodyElements){
Elements trElements = tbodyElement.children();
for(Element trElement : trElements){
Elements tdElements = trElement.children();
String key = tdElements.get(0).text();
String value = tdElements.get(1).text();
System.out.println("key=="+key.trim());
System.out.println("value=="+value);
}
}
}
控台输出结果
key== 余额:
value==259.01
key== 上笔发生日:
value==2018-03-21
key== 未登折笔数:
value==2
key== 账户状态:
value==正常
常用api
1. Jsoup.parse(String html);//解析一个html页面,返回document类型
eg:Document document = Jsoup.parse(html);
2.通过tagname获取所有相同标签document.getEleementsByTag(String name);
Elements elements = document.getElementsByTag("table");
3. element.children();//获取所有的子元素
eg:Elements elements = element.children();
4.element.attributies();// 获取当前元素的属性
eg: Attributes attributes = element.attributies();
//遍历属性并获得属性名和值
for(Attribute attr : attributes){
//属性名
String propertyName = attr.getKey();
//属性值
String propertyValue = attr.getVlaue();
}
(未完待续)
网友评论