atitit. java jsoup html table的读取解析 总结

1. 两个大的parser ,,,jsoup 跟个   htmlparser 1

2. 资料比较 1

3. jsoup越佳.. 1

4. 解析并提取 HTML 元素的模式( 选择器 and  DOM 方式 ) 2

5. html修改 2

6. 跟个htmlparse的比较 2

7. jsoup的用处 3

7.1. html解析 3

7.2. html修改 3

7.3. HTML 文档清理 3

8. code--读取解析表格2Lisp<Map> 3

html table的读取

1. 两个大的parser ,,,jsoup 跟个   htmlparser

2. 资料比较

jsoup  百度为您找到相关结果约321,000个

htmlparser 百度为您找到相关结果约113,000个

3. jsoup越佳..

运用 jsoup 对 HTML 文档进行解析和操作(比HTMLParser好)

Java 程序在解析 HTML 文档时,相信大家都接触过 htmlparser 这个开源项目,我曾经在 IBM DW 上发表过两篇关于 htmlparser 的文章,分别是:从 HTML 中攫取你所需的信息和?扩展 HTMLParser 对自定义标签的处理能力。但现在我已经不再使用 htmlparser 了,原因是 htmlparser 很少更新,但最重要的是有了 jsoup 。

作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

4. 解析并提取 HTML 元素的模式( 选择器 and  DOM 方式 )

这部分涉及一个 HTML 解析器最基本的功能,但 jsoup 使用一种有别于其他开源项目的方式――选择器,我们将在最后一部分详细介绍 jsoup 选择器,本节中你将看到 jsoup 是如何用最简单的代码实现。

不过 jsoup 也提供了传统的 DOM 方式的元素解析,看看下面的代码

5. html修改

修改数据

在解析文档的同时,我们可能会需要对文档中的某些元素进行修改,例如我们可以为文档中的所有图片增加可点击链接、修改链接地址或者是修改文本等。

下面是一些简单的例子:

清单 4.

doc.select("div.comments a").attr("rel", "nofollow"); // 为所有链接增加 rel=nofollow 属性 doc.select("div.comments a").addClass("mylinkclass"); // 为所有链接增加 class=mylinkclass 属性 doc.select("img").removeAttr("onclick"); // 删除所有图片的 onclick 属性 doc.select("input[type=text]").val(""); // 清空所有文本输入框中的文本

道理很简单,你只需要利用 jsoup 的选择器找出元素,然后就可以通过以上的方法来进行修改,除了无法修改标签名外(可以删除后再插入新的元素),包括元素的属性和文本都可以修改。

修改完直接调用 Element(s) 的 html() 方法就可以获取修改完的 HTML 文档。

6. 跟个htmlparse的比较

与 htmlparser 项目不同的是,jsoup 并没有为 HTML 元素定义一个对应的类,一般一个 HTML 元素的组成部分包括:节点名、属性和文本,jsoup 提供简单的方法供你自己检索这些数据,这也是 jsoup 保持瘦身的原因。

而在元素检索方面,jsoup 的选择器简直无所不能,

这是 jsoup 真正让我折服的地方,jsoup 使用跟 jQuery 一模一样的选择器对元素进行检索,以上的检索方法如果换成是其他的 HTML 解释器,至少都需要很多行代码,而 jsoup 只需要一行代码即可完成。

jsoup 的选择器还支持表达式功能,我们将在最后一节介绍这个超强的选择器。

7. jsoup的用处

7.1. html解析

7.2. html修改

7.3. HTML 文档清理

8. code--读取解析表格2Lisp<Map>

prj.wechatadm4prp

package com.attilax.html;

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

import org.jsoup.nodes.Element;

import org.jsoup.select.Elements;

//import com.attilax.cc.Document;

import com.attilax.io.pathx;

import com.attilax.lang.core;

import com.attilax.lang.json.JsonX;

import com.attilax.util.AngularJsX;

@SuppressWarnings("all")

public class HtmlX {

public static void main(String[] args) {

Stringjsppath="applyInstall\\appinst_list.jsp";

jsppath="aa/bb";

jsppath=jsppath.replaceAll("/", "\\\\");

System.out.println(jsppath);

List li=getTitlesMap(jsppath,"tabid1","utf-8");

System.out.println(JsonX.toJsonStrO88(li));

}

/**

*

* @param jsppath   %app%/path

* @param tableId

* @param htmlEncode

* @return

*/

public static List<Map> getTitlesMap(String jsppath, String tableId,String htmlEncode) {

jsppath=pathx.delWebappPrefix(jsppath);

jsppath=jsppath.replaceAll("/", "\\\\");

jsppath=pathx.webAppPath()+"\\"+jsppath;

List li=new ArrayList();

File input = new File(jsppath);

try {

Document doc = Jsoup.parse(input, htmlEncode, "http://example.com/");

Element tab_elmt=doc.getElementById(tableId);

Elements   trs=   tab_elmt.getElementsByTag("tr");

Element titleTr=trs.get(0);

Element  fldTr=trs.get(1);

Elements tds=titleTr.getElementsByTag("td");

if(tds.size()==0)

tds=titleTr.getElementsByTag("th");

Elements tds_fld=fldTr.getElementsByTag("td");

for(int i=0;i<tds.size();i++)

{

Element td=tds.get(i);

Map m=new HashMap();

m.put("title", td.text());

String fld1=tds_fld.get(i).text();

String fld=AngularJsX.getFld_sf(fld1);

m.put("fld", fld);

if(fld.length()>0)

li.add(m);

}

} catch (IOException e) {

throw new RuntimeException(e);

}

return li;

}

}

参考

运用 jsoup 对 HTML 文档进行解析和操作(比HTMLParser好) _HTML_CSS_代码迷.htm

使用 jsoup 对 HTML 文档进行解析和操作.htm

atitit. java jsoup html table的读取解析 总结相关推荐

  1. java jsoup解析_3使用Jsoup解析Java中HTML文件的示例

    java jsoup解析 HTML是Web的核心,无论您是通过JavaScript,JSP,PHP,ASP或任何其他Web技术动态生成的,您在Internet上看到的所有页面都是基于HTML的. 您的 ...

  2. java jsoup解析开彩网api接口json数据实例

    https://www.cnblogs.com/zdz8207/p/7288830.html 开彩网apiJava技术学习 https://www.itkc8.com json-lib-2.4-jdk ...

  3. java 读取 解析微软Project .mpp 文件到甘特图

    1.引入价包; <dependency><groupId>org.apache.poi</groupId><artifactId>poi</art ...

  4. Java文件读写和CSV文件解析(读取csv文件的一列或若干列)

    文件类 Java 读文件流的知识不可少,先复习一下吧! OREACLE JDK8 DOCS 文件类是Java IO的一个对象,用于指定文件的相关信息,位置和名称信息.如txt文件,csv文件对Java ...

  5. java解析yml文件_java读取解析application.yml

    java读取解析application.yml 不用依赖spring容器,可单独使用. bug已修改... 第一步.首先要2个jar com.fasterxml.jackson.dataformat ...

  6. java jsoup 网络爬虫 jsoup解析html Java爬虫 Jsoup爬虫 jsoup例子

    java jsoup 网络爬虫 java jsoup 网络爬虫 学习例子(一)抓取豆瓣电影名称+推荐星级 java jsoup 网络爬虫 学习例子(二)只抓取豆瓣电影5星(力荐)电影名称 java j ...

  7. java毕业设计——基于java+Jsoup+HttpClient的网络爬虫技术的网络新闻分析系统设计与实现(毕业论文+程序源码)——网络新闻分析系统

    基于java+Jsoup+HttpClient的网络爬虫技术的网络新闻分析系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+Jsoup+HttpClient的网络爬虫技术的网络 ...

  8. Atitit.java swing打印功能 api  attilax总结

    Atitit.java swing打印功能 api  attilax总结 1. 打印方式有三种:2 1.1. 一是不经过任何修改,直接调用javascript中的window.print()打印.2 ...

  9. java jsoup 多线程爬虫Miner

    java jsoup 多线程爬虫Miner 需要配置项: 1.URL包含关键字. 2.存储方式:DB-数据库存储;FILE-文件存储. 3.爬取页面最大深度. 4.下载页面线程数. 5.分析页面线程数 ...

最新文章

  1. 5月书讯:阳光穿过银杏树
  2. ​iOS的界面触摸事件处理机制,然后用一个实例来说明下应用场景.
  3. 数据结构和算法分析:B树 B+树 和B*树的总结
  4. Action Framework Medium attribute 初始化逻辑
  5. CCNA考试中实验题精讲(RIP,OSPF,VLAN)
  6. codeforces 50A-C语言解题报告
  7. java实现icmp攻击,利用java实现ICMP协议在linux环境配置
  8. 【Qt教程】4.1 - Qt5 文件系统 QFile文件读写操作
  9. 固定时间减当前时间有没有超72小时_上海龙湖英迪格酒店正式部署畅捷固定资产管理系统...
  10. android客户端日志,更新日志 - BugHD Android 客户端上线
  11. Hadoop2.7.4 HA centos6.8
  12. SAPUI5教程——URLHelper的使用技巧
  13. 计算机与生活的ppt,计算机应用基础说课PPT
  14. ligerui demo php,LigerUI——天外飞仙
  15. 阿里云数据库与自建数据库的性能对比
  16. 西游记笔记与想法(2)
  17. html 向上滑动,jQuery - 使用.slideUp()方法向上滑动HTML元素
  18. php 多关键字搜索,php 多关键字搜索示例
  19. 佳能e478打印机怎么连接wifi
  20. spring 中的JMS是什么?

热门文章

  1. 标准纯C++实现简单的词法分析器(三)
  2. KubeEdge向左,K3S向右
  3. 关于MySQL内核,一定要知道的!
  4. centos 7--LNMP环境部署
  5. 任务调度利器:Celery
  6. 《Android应用开发入门经典(第3版)》——导读
  7. weblogic管理1——创建 和 删除一个domain
  8. [WCF编程]10.操作:回调操作
  9. rails 3 使用 cucumber 和rspec 進行 測試
  10. 利好不断,跑步入场支持BCH