用Jsoup解析HTML文件,并保存到本地

时间:2022-10-31 23:43:15

转自:http://blog.csdn.net/justoneroad/article/details/8125236

Jsoup解析HTML文件,并保存到本地 分类: web Java 1818人阅读 评论(0)收藏 举报

需要引入的Jsoup.jar包:jsoup.jar

推荐阅读的jsoup使用教程:使用JSOUP处理HTML文档


以下是实现Jsoup解析HTML文件,并保存到本地的Java代码:

[java] view plaincopyprint?
  1. /** 
  2.  * 这个文件实现了:将指定目录下的所有htm和html文件的<title>标签的值,替换成文件名(不含后缀)。 
  3.  */  
  4. import java.io.File;  
  5. import java.io.FileOutputStream;  
  6. import java.io.IOException;  
  7. import java.io.OutputStreamWriter;  
  8.   
  9. import org.jsoup.Jsoup;  
  10. import org.jsoup.nodes.Document;  
  11. import org.jsoup.nodes.Element;  
  12.   
  13.   
  14. public class Rename {  
  15.     public static void main(String[] args) {  
  16.         // 默认文件夹路径   
  17.         String path = "C:\\report";  
  18.         if(args != null && args.length > 0){  
  19.             path = args[0];  
  20.         }  
  21.         try {  
  22.             renameHTMLTitle(path);  
  23.         } catch (IOException e) {  
  24.             e.printStackTrace();  
  25.         }  
  26.     }  
  27.   
  28.     public static void renameHTMLTitle(String dir) throws IOException {  
  29.         File f = new File(dir);  
  30.         if (f.isDirectory()) {  
  31.             File fs[] = f.listFiles();  
  32.             for (File s : fs) {  
  33.                 String title = s.getName().replaceAll(".htm""").replaceAll(".html""");  
  34.                 if(s.getName().contains(".htm") || s.getName().contains(".html")){  
  35.                     Document doc = Jsoup.parse(s, "gb2312");  
  36.                     Element titleEl = doc.select("title").first();  
  37.                     titleEl.html(title);  
  38.                     /* 
  39.                      * Jsoup只是解析,不能保存修改,所以要在这里保存修改。 
  40.                      */  
  41.                     FileOutputStream fos = new FileOutputStream(s, false);  
  42.                     OutputStreamWriter osw = new OutputStreamWriter(fos, "gb2312");  
  43.                     osw.write(doc.html());  
  44.                     osw.close();  
  45.                 }  
  46.             }  
  47.         }  
  48.     }  
  49. }