当前位置: 首页 > 工具软件 > JTidy > 使用案例 >

使用JTidy抽取网页内容

韦安顺
2023-12-01
Tidy 是 W3C 用来解析网页的一个软件包,可以方便地将 HTML 文档转换为符合 XML 标准的文档,由于 XML 可以方便地使用 XSLT 技术对内容进行抽取,所以使用 Tidy 配合 XSLT 可以方便地将各种网页的内容抽取出来,保存成我们需要的格式。
通过 JTidy 可以方便地将标准的 HTML 网页转换为 XML 的 DOM 对象,然后,通过 XPaht 和 XSLT 将需要的内容抽取出来。
 
使用 JTidy 抽取网页内容的代码如下:
 
  

jtidy 中文问题:我们普通的网页编码使用 gb2312, 使用 jtidy 时,会出现乱码问题,解决的办法就是首先将网页重新编码为 utf-8 , 然后再进行处理,就不会出现乱码问题,见下面的代码

FileInputStream in = new FileInputStream( fileName ); // 打开文件,转换为 UTF-8 编码
InputStreamReader isr = new InputStreamReader(in, "GB2312"); // 源文件编码为 gb2312

File tmpNewFile = File.createTempFile("GB2312",".html"); // 转换后的文件,设定编码为 utf-8
FileOutputStream out = new FileOutputStream( tmpNewFile ); // 需要将文件转换为字符流
OutputStreamWriter osw = new OutputStreamWriter( out , "UTF-8");// 指定目标编码为 utf-8

没有 main 函数问题:

上面的代码给出的是一个基于样式表的转换类,不能单独使用,main 函数需要自己写,main 函数中基本上如下所示:

HTMLParserByW3CDOM hpb = new HTMLParserByW3CDOM ();
hpb.setXSLT( 样式表的文件名 );
hpb.parser( HTML文件名,转换结果的XML文件名 );

注意:HTML文件是普通的 gb2312 编码的网页,不需要预先处理成utf-8

 

 类似资料: