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">&nbsp;<a href="#">教育部高等教育司2016年工作要点</a></li><li><img src="./images/li_bg.jpg">&nbsp;<a href="#">湖北省教育厅高等教育处2016年工作要点</a></li><li><img src="./images/li_bg.jpg">&nbsp;<a href="#">湖北省教育厅高等教育处2015年工作要点</a></li><li><img src="./images/li_bg.jpg">&nbsp;<a href="#">省委高校工委 省教育厅关于印发201</a></li><li><img src="./images/li_bg.jpg">&nbsp;<a href="#">教育部2015年工作要点</a></li><li><img src="./images/li_bg.jpg">&nbsp;<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的简易使用示例相关推荐

  1. Android中利用Jsoup让WebView清除Html标签并让图片适应大小并居中

    在App应用中,我们常常会加载一些新闻.通知等内容,这些内容很多来自于数据库中存储的HTML文本,里面的标签杂乱不堪,且内容中又包括图片等. 处理这些内容,我们可以利用正则表达式来处理,但标签太多,太 ...

  2. (七)webStorage使用实例——webStorage作为简易数据库来使用

    webStorage作为简易数据库来使用 如果想用webStorage作为数据库,首先要考虑以下问题: 1.在数据库中,大多数表都分为几列,怎样对列进行管理? 2.怎样对数据库进行检索? 实现原理:( ...

  3. jsoup Java HTML解析器

    jsoup is an open source Java HTML parser that we can use to parse HTML and extract useful informatio ...

  4. java的html解析器——Jsoup详解

    入门 1. 解析和遍历一个html文档 输入 2. 解析一个html字符串 3. 解析一个body片断 4. 根据一个url加载Document对象 5. 根据一个文件加载Document对象 数据抽 ...

  5. 上期技术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 ...

  6. Jsoup Cookbook

    入门 1.解析和遍历一个HTML文档 如何解析一个HTML文档: String html = "<html><head><title>First pars ...

  7. 【CV实践】图像检索从入门到进阶

    Datawhale分享 作者:阿水,Datawhale成员 简介:阿水,Datawhale成员,北京航空航天大学硕士,多次获得国内外数据竞赛TOP名次 图像检索是计算机视觉中基础的应用,可分为文字搜图 ...

  8. 厉害了,Spring Cloud Alibaba 发布 GA 版本!

    小马哥 & Josh Long 喜欢写一首诗一般的代码,更喜欢和你共同 code review,英雄的相惜,犹如时间沉淀下来的对话,历久方弥新. 相见如故,@杭州. 4 月 18 日,Josh ...

  9. Dubbo 3.0 前瞻:重塑 Spring Cloud 服务治理

    作者 | 小马哥 **导读:**Dubbo 社区策划了[Dubbo 云原生之路]系列文章,和大家一起回顾 Apache Dubbo 产品和社区的发展,并展望未来发展.系列文章主要涵盖 Dubbo 技术 ...

最新文章

  1. Python标准库asyncio模块基本原理浅析
  2. java中的Executors简介与多线程在网站上逐步优化的运用案例
  3. tableau做折线图_Tableau | 20种常用图表(上文)
  4. Linux下的Ubuntu16.04系统配置并使用USB转串口(串口转USB),最终使用python的serial和pyserial包实现串口的打开并读取数据
  5. 【译】Diving Into The Ethereum VM Part 4 - How To Decipher A Smart Contract Method Call
  6. 只会写代码的程序员永远无法出色?!
  7. udp丢包解决办法 (没打开接收发送缓存)及setsockopt()用法 -转
  8. 深度学习 keras_Keras深度学习教程
  9. vue canvas动效组件插件库制作
  10. 如何向VISUAL SVN SERVER上传文件
  11. 手机远程计算机桌面,win10系统下手机远程连接电脑桌面方法
  12. 用Matlab解MTPA的dq轴电流的方程
  13. Linux 误删文件后恢复文件
  14. mave工程dependencyManagement与dependencies区别
  15. 《平衡掌控者 游戏数值战斗设计》学习笔记(三)战斗公式
  16. 橘子学ES19之词项搜索全文检索
  17. 一种简单、安全的Dota全图新思路
  18. 速腾 RS-Bpearl 显示点云
  19. C/C++中关于交换(Swap)函数的三种方法
  20. Matlab中图文本中的希腊字母和特殊字符

热门文章

  1. 谷歌浏览器调用本地exe_无需修改前端和后端代码本地跨域开发设置
  2. 数字系统设计学习之QuartusII9的安装
  3. python字符数组输出_python字符串格式化输出
  4. webso员ket php,客戶端和PHP後端通信:Sokets,Stream,TCP/UDP?
  5. 9. 设计二个函数分别计算sinx和cosx_【数组分享】PHP函数array_udiff_assoc ()分享(20201128)...
  6. 梦幻西游物价稳定的服务器,梦幻西游:三界功绩对服务器点卡比例的影响,鬼区比例比火区高...
  7. 苹果如何分屏_刚刚,苹果证实,iPhone12 刘海没了!
  8. tomcat如何配置文件读取路径
  9. android ListView ListSelector 不起作用(被覆盖)
  10. 2-1:套接字(Socket)编程之必备知识