Jsoup的简易使用示例
http://www.open-open.com/jsoup/parsing-a-document.htm
测试用网页
<!doctype html><!-- http://jwc.yangtzeu.edu.cn/ --><html class="outlin colo"><head><meta charset="utf-8"><title>长江大学</title><link type="text/css" rel="stylesheet" href="./css/reset.css"><link type="text/css" rel="stylesheet" href="./css/layout.css"><link type="text/css" rel="stylesheet" href="./css/yangtze.css"><script src="base.js"></script><script src="./js/nodeObject.js"></script><script src="./js/yangtze.js"></script> </head><body><div id="content"><!-- 顶部图片div --><div id="header-imageDiv"></div><!-- 顶部菜单div --><div id="header-menuDiv"><div id="header-menu-table"><div class="header-menu-cell"><a href="#" title="首页">首页</a></div><div class="header-menu-cell"><a href="#" title="机构设置">机构设置</a></div><div class="header-menu-cell"><a href="#" title="规章制度">规章制度</a></div><div class="header-menu-cell"><a href="#" title="教学建设">教学建设</a></div><div class="header-menu-cell"><a href="#" title="教务管理">教务管理</a></div><div class="header-menu-cell"><a href="#" title="考务管理">考务管理</a></div><div class="header-menu-cell"><a href="#" title="实践创新">实践创新</a></div><div class="header-menu-cell"><a href="#" title="质量评估">质量评估</a></div><div class="header-menu-cell"><a href="#" title="学务管理">学务管理</a></div><div class="header-menu-cell"><a href="#" title="服务指南">服务指南</a></div><div class="header-menu-cell"><a href="#" title="下载中心">下载中心</a></div></div></div><div class="space"></div><!-- 顶部时间div --><div id="header-dateDiv"></div><div class="space"></div><!-- 中间的tableDiv --><div id="table"><!-- 左侧table-cell --><div id="table-left"><div id="table-left-imageDiv"></div><div class="space"></div><h2 class="h2-style">高教信息<a href="#">+MORE</a></h2><ul class="ul-type-1"><li style="color : red;"><img src="./images/li_bg.jpg"> <a href="#">教育部高等教育司2016年工作要点</a></li><li><img src="./images/li_bg.jpg"> <a href="#">湖北省教育厅高等教育处2016年工作要点</a></li><li><img src="./images/li_bg.jpg"> <a href="#">湖北省教育厅高等教育处2015年工作要点</a></li><li><img src="./images/li_bg.jpg"> <a href="#">省委高校工委 省教育厅关于印发201</a></li><li><img src="./images/li_bg.jpg"> <a href="#">教育部2015年工作要点</a></li><li><img src="./images/li_bg.jpg"> <a href="#">近两年就业率较低的本科专业名单</a></li></ul><div class="space"></div><h2 class="h2-style">友情链接</h2><div id="select-type"></div></div><div class="space"></div><!-- 中间table-cell --><div id="table-center"><div id="table-center-topLineDiv"><span id="notice" onmouseover="switchTab(this)">教务通知</span><span id="thisweek" onmouseover="switchTab(this)">本周事务</span></div><ul id="notice-ul"><li>关于组织2017年(第十二届)长江大学大学生化学实验<span>2017-03-30</span></li><li>关于核查文科相关学院2013级毕业班学生成绩的通知<span>2017-03-30</span></li><li>关于组织申报第二批校级双语教学示范课程的通知<span>2017-03-30</span></li><li>查看更多...</li></ul><ul id="thisweek-ul"><li>2016~2017学年第二学期6~7月份主要教学工作安排<span>2017-03-30</span></li><li>2016~2017学年第二学期5月份主要教学工作安排<span>2017-03-30</span></li><li>2016~2017学年第二学期4月份主要教学工作安排<span>2017-03-30</span></li><li>2016~2017学年第二学期3月份主要教学工作安排<span>2017-03-30</span></li><li>查看更多...</li></ul><div class="chooseTab"><span>教务通知</span><span>本周事务</span></div></div><!-- 右侧table-cell --><div id="table-right"></div></div><div class="space"></div><!-- 底部的menuDiv --><div id="bottom-menuDiv"></div><div class="space"></div></div><!-- 最底部的div --><div id="footer"></div><script>setup();switchTab(elementById("notice"));addEventss();</script></body></html>
Java代码
import java.io.File; import java.util.ArrayList;import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements;public class App {public static void main(String args[]) {try {File input = new File("/Users/YouXianMing/Documents/Project/HTML Project/yangtze/yangtze.html");Document doc = Jsoup.parse(input, "UTF-8", "http://yangtze.com/");// 根据元素id获取元素 {Element content = doc.getElementById("content");System.out.println(content);}// 根据CSS的class名获取元素数组 {ArrayList<Element> list = doc.getElementsByClass("space");for (Element element : list) {System.out.println(element + "\n");}}// 根据标签获取元素数组 {ArrayList<Element> list = doc.getElementsByTag("div");for (Element element : list) {System.out.println(element + "\n");}}// 根据元素中含有的属性值获取元素数组 {ArrayList<Element> list = doc.getElementsByAttribute("href");for (Element element : list) {System.out.println(element + "\n");}}// 根据元素中含有的属性值获取元素数组 {Element content = doc.getElementById("header-menu-table");// 元素的父元素 System.out.println(content.parent());// 元素的所有子元素 System.out.println(content.children());// 与该元素平级的第一个兄弟元素System.out.println(content.child(0).firstElementSibling());// 与该元素平级的最后一个兄弟元素System.out.println(content.child(0).lastElementSibling());// 该元素的前一个兄弟元素System.out.println(content.child(1).previousElementSibling());// 该元素的下一个兄弟元素System.out.println(content.child(0).nextElementSibling());}// 一个元素中的数据 {Element content = doc.getElementsByClass("ul-type-1").first().child(0);// 获取文本内容 System.out.println(content.text());// 获取tag名字 System.out.println(content.tagName());// 获取tag对象 System.out.println(content.tag());// 获取属性字典 System.out.println(content.attributes());// 获取当前内容当中的html内容 System.out.println(content.html());// 获取外部的html内容 System.out.println(content.outerHtml());// 获取属性style的值System.out.println(content.attr("style"));}// 使用选择器语法来查找元素 {Elements elements = null;// 通过标签查找元素elements = doc.select("a");System.out.println(elements);// 通过id查找元素elements = doc.select("#content");System.out.println(elements);// 通过class查找元素elements = doc.select(".ul-type-1");System.out.println(elements);// 通过属性查找元素elements = doc.select("[href]");System.out.println(elements);// 通过属性前缀查找元素elements = doc.select("[^hr]");System.out.println(elements);// 通过属性值来查找元素elements = doc.select("[id=notice]");System.out.println(elements);// 匹配属性值开头elements = doc.select("[onmouseover^=swit]");System.out.println(elements);// 匹配属性值结尾elements = doc.select("[onmouseover$=(this)]");System.out.println(elements);// 匹配包含了属性值elements = doc.select("[onmouseover*=Tab]");System.out.println(elements);// 正则表达式匹配elements = doc.select("ul[id~=^notice]");System.out.println(elements);}} catch (Exception e) {System.out.println(e);}} }
注意
以下地方请自行替换,本人是从本地加载的html
以下是获取元素的几种情形
转载于:https://www.cnblogs.com/YouXianMing/p/6913342.html
Jsoup的简易使用示例相关推荐
- Android中利用Jsoup让WebView清除Html标签并让图片适应大小并居中
在App应用中,我们常常会加载一些新闻.通知等内容,这些内容很多来自于数据库中存储的HTML文本,里面的标签杂乱不堪,且内容中又包括图片等. 处理这些内容,我们可以利用正则表达式来处理,但标签太多,太 ...
- (七)webStorage使用实例——webStorage作为简易数据库来使用
webStorage作为简易数据库来使用 如果想用webStorage作为数据库,首先要考虑以下问题: 1.在数据库中,大多数表都分为几列,怎样对列进行管理? 2.怎样对数据库进行检索? 实现原理:( ...
- jsoup Java HTML解析器
jsoup is an open source Java HTML parser that we can use to parse HTML and extract useful informatio ...
- java的html解析器——Jsoup详解
入门 1. 解析和遍历一个html文档 输入 2. 解析一个html字符串 3. 解析一个body片断 4. 根据一个url加载Document对象 5. 根据一个文件加载Document对象 数据抽 ...
- 上期技术CTP_最新6.6.1T1_P1版_API_COM封装使用指南及DELPHI2010_python3.60_VB.NET_C#_VS2015_C++MFC_WIN32示例代码程序
上期技术CTP_最新6.6.1T1_P1版_API_COM封装使用指南 里面有:DELPHI2010 python3.60 32位版简易窗体示例程序 VS2015_VB.NET VS2015_C# V ...
- Jsoup Cookbook
入门 1.解析和遍历一个HTML文档 如何解析一个HTML文档: String html = "<html><head><title>First pars ...
- 【CV实践】图像检索从入门到进阶
Datawhale分享 作者:阿水,Datawhale成员 简介:阿水,Datawhale成员,北京航空航天大学硕士,多次获得国内外数据竞赛TOP名次 图像检索是计算机视觉中基础的应用,可分为文字搜图 ...
- 厉害了,Spring Cloud Alibaba 发布 GA 版本!
小马哥 & Josh Long 喜欢写一首诗一般的代码,更喜欢和你共同 code review,英雄的相惜,犹如时间沉淀下来的对话,历久方弥新. 相见如故,@杭州. 4 月 18 日,Josh ...
- Dubbo 3.0 前瞻:重塑 Spring Cloud 服务治理
作者 | 小马哥 **导读:**Dubbo 社区策划了[Dubbo 云原生之路]系列文章,和大家一起回顾 Apache Dubbo 产品和社区的发展,并展望未来发展.系列文章主要涵盖 Dubbo 技术 ...
最新文章
- Python标准库asyncio模块基本原理浅析
- java中的Executors简介与多线程在网站上逐步优化的运用案例
- tableau做折线图_Tableau | 20种常用图表(上文)
- Linux下的Ubuntu16.04系统配置并使用USB转串口(串口转USB),最终使用python的serial和pyserial包实现串口的打开并读取数据
- 【译】Diving Into The Ethereum VM Part 4 - How To Decipher A Smart Contract Method Call
- 只会写代码的程序员永远无法出色?!
- udp丢包解决办法 (没打开接收发送缓存)及setsockopt()用法 -转
- 深度学习 keras_Keras深度学习教程
- vue canvas动效组件插件库制作
- 如何向VISUAL SVN SERVER上传文件
- 手机远程计算机桌面,win10系统下手机远程连接电脑桌面方法
- 用Matlab解MTPA的dq轴电流的方程
- Linux 误删文件后恢复文件
- mave工程dependencyManagement与dependencies区别
- 《平衡掌控者 游戏数值战斗设计》学习笔记(三)战斗公式
- 橘子学ES19之词项搜索全文检索
- 一种简单、安全的Dota全图新思路
- 速腾 RS-Bpearl 显示点云
- C/C++中关于交换(Swap)函数的三种方法
- Matlab中图文本中的希腊字母和特殊字符
热门文章
- 谷歌浏览器调用本地exe_无需修改前端和后端代码本地跨域开发设置
- 数字系统设计学习之QuartusII9的安装
- python字符数组输出_python字符串格式化输出
- webso员ket php,客戶端和PHP後端通信:Sokets,Stream,TCP/UDP?
- 9. 设计二个函数分别计算sinx和cosx_【数组分享】PHP函数array_udiff_assoc ()分享(20201128)...
- 梦幻西游物价稳定的服务器,梦幻西游:三界功绩对服务器点卡比例的影响,鬼区比例比火区高...
- 苹果如何分屏_刚刚,苹果证实,iPhone12 刘海没了!
- tomcat如何配置文件读取路径
- android ListView ListSelector 不起作用(被覆盖)
- 2-1:套接字(Socket)编程之必备知识