Jsoup学习笔记5:Jsoup 解析SAZ文件中的htm文档源码实例

原创 2015年07月10日 14:37:41

       上一篇Jsoup学习笔记的小例子实现的功能是:解析saz格式文件中的htm文档,提取其中table标签内的数据,将解析到的数据写入txt文件中。本节做了一些改进,实现把提取的数据按照一定格式写入csv文档中,本来想把解析前的_index.htm文档附录一下供参考的,但不知道怎么传尴尬,如想验证本实例的话可以自己用Fiddler 2抓取网络操作生成一个saz文件,然后解压一下里面就有一个_index.htm文档。

示例如下 :

package com.daxiang.myjsoup;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

/**
 * @Author:daxiang
 * @Date:2015-7-9
 * @Email:chenjinpeng0326@163.com
 * @Version:Version1.0
 * @CopyRight:daxiang
 * @Description: 解析SAZ格式文件中的htm文档,提取其中table标签内的数据,将解析到的数据写入TXT或者CSV文件中
 */
public class MyJsoupTest {

	public static void main(String args[]) throws IOException {

		// 导入htm文档
		File input = new File("C:\\myjsoup\\_index.htm");
		Document doc = Jsoup.parse(input, "UTF-8");

		// 提取表头信息
		Elements heads = doc.getElementsByTag("table").select("thead");
		FileWriter fw = new FileWriter("C:\\myjsoup\\1.csv", true);
		for (int m = 0; m < heads.size(); m++) {
			Elements head = heads.get(m).select("th");
			for (int n = 0; n < head.size(); n++) {
				// 经过观察,该htm文档table标签内共有23列数据,因为只需要第2至12列的数据,所以其他列排除掉不予提取
				if (n == 0) {
					continue;
				} else if (n < 22) {
					// text()方法和toString()方法的效果不同
					// String h = head.get(n).toString() + "\r\n";
					String h = head.get(n).text() + ",";
					fw.write(h);
					System.out.print(h);
				} else if (n == 22) {
					String h = head.get(n).text() + "\r\n";
					fw.write(h);
					System.out.print(h);
				} else {
					break;
				}
			}
		}

		// 提取表格信息
		Elements trs = doc.getElementsByTag("table").select("tr");
		for (int i = 0; i < trs.size(); i++) {
			Elements tds = trs.get(i).select("td");
			for (int j = 0; j < tds.size(); j++) {
				// 把空格无内容的部分去除掉
				// if(!"".equals(tds.get(j).text())){
				// String str = tds.get(j).text() + "\r\n";
				// System.out.print(str);
				// fw.write(str);
				// }
				if (j == 0) {
					continue;
				} else if (j < 22) {
					//加双引号的作用很大,有些数据是包含逗号的,不处理一下,本来在一个表格里的数据
					//会因为逗号的存在分开到好几列表格中
					String str1 = "\"" + tds.get(j).text() + "\"";
					String str2 = str1 + ",";
					//System.out.print(str2);
					fw.write(str2);
				} else if (j == 22) {
					String str3 = tds.get(j).text() + "\r\n";
					//System.out.print(str3);
					fw.write(str3);
				} else {
					break;
				}
			}
		}
		fw.flush();
		fw.close();

	}
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

Jsoup解析HTML实例及文档方法详解

这篇文章主要介绍了Jsoup如何解析一个HTML文档、从文件加载文档、从URL加载Document等方法,对Jsoup常用方法做了详细讲解,最近提供了一个示例供大家参考 使用DOM方法来遍历一个文档 ...
  • u011396691
  • u011396691
  • 2016年06月28日 10:17
  • 2433

java中用jsoup抓取网页源码,并批量下载图片

一、导入jsoup的核心jar包jsoup-xxx.jar jar包下载地址:jsoup-1.8.2.jar        中文API地址:http://www.open-open.com/jsoup...
  • wangcunhuazi
  • wangcunhuazi
  • 2015年05月31日 12:25
  • 4655

java Jsoup实现新闻网页的爬取,标题,正文,图片,新闻时间,网页链接的解析示例

一下代码为一个Jsoup爬取新闻网页的简单示例,可直接运行。 import java.io.File; import java.io.FileOutputStream; import java.i...
  • yxmaomao1991
  • yxmaomao1991
  • 2016年01月20日 20:58
  • 3118

Jsoup学习笔记9:Jsoup 解析saz文件,读取其中的htm文件到字符串,提取字符串中的数据写入csv文件中

本篇笔记将上篇笔记的操作做些改进,不再把saz文件中的htm文件解析出来,而是不解压直接读取其中的数据成字符串,基本思路如下: 1、自定义一个从文本文件读取内容到字符串的类:解析saz文件中的h...
  • cjp0326
  • cjp0326
  • 2015年08月04日 09:38
  • 697

Jsoup学习笔记8:Jsoup 解析指定目录中的saz文件,生成一个名字相同的htm文件,将解析结果写入csv文件中

本篇笔记和前面的Jsoup学习笔记有连贯性,有些小细节不明白的可以查看前面几篇笔记,要实现的功能是: 1、解析指定目录中的saz文件,生成一个名字相同的htm文件  2、解析生成的htm文件,提取其中...
  • cjp0326
  • cjp0326
  • 2015年07月23日 16:30
  • 737

Jsoup学习笔记6之File类操作文件:获取指定目录下面,指定扩展名(.saz)的文件,并在对应的文件夹下生成同名的csv文件。

虽然这篇笔记涉及的主要是文件的操作,但是是在做的利用Jsoup解析文档小任务的一部分,所以也放在一起,借鉴了帖子上的源码,做了一些改动,下一篇笔记是基于本篇的进一步改进! 实例如下: package ...
  • cjp0326
  • cjp0326
  • 2015年07月22日 15:05
  • 729

Jsoup 解析Html源码实例

最近在做数据挖掘的过程中需要对html的源码进行解析,用到了Jsoup这个解析工具,下面写个基本实例来展现它的用法。 需要用到jar包:jsoup-1.7.2.jar,可以到jsoup的官网下载...
  • jyg694234697
  • jyg694234697
  • 2015年03月11日 17:29
  • 387

Jsoup 解析Html源码实例

最近在做数据挖掘的过程中需要对html的源码进行解析,用到了Jsoup这个解析工具,下面写个基本实例来展现它的用法。 需要用到jar包:jsoup-1.7.2.jar,可以到jsoup的官网下载...
  • baidu_29512909
  • baidu_29512909
  • 2015年09月02日 11:04
  • 302

Jsoup学习笔记10:Saz2Csv解析器

经过了一系列的学习和摸索,Jsoup学习笔记即将告一段落,第11篇学习笔记将会把本篇实现的功能界面化,并做成一个可直接执行的exe文件。后续的项目如果需要更深入的学习Jsoup,还会继续更新。    ...
  • cjp0326
  • cjp0326
  • 2015年08月04日 10:40
  • 457

源码_Jsoup 解析实时/7天/15天内 全国各城市天气

  • 2014年12月05日 20:47
  • 384KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Jsoup学习笔记5:Jsoup 解析SAZ文件中的htm文档源码实例
举报原因:
原因补充:

(最多只允许输入30个字)