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

时间:2022-10-31 23:47:49

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

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


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

/** * 这个文件实现了:将指定目录下的所有htm和html文件的<title>标签的值,替换成文件名(不含后缀)。
*/
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;


public class Rename {
public static void main(String[] args) {
// 默认文件夹路径
String path = "C:\\report";
if(args != null && args.length > 0){
path = args[0];
}
try {
renameHTMLTitle(path);
} catch (IOException e) {
e.printStackTrace();
}
}

public static void renameHTMLTitle(String dir) throws IOException {
File f = new File(dir);
if (f.isDirectory()) {
File fs[] = f.listFiles();
for (File s : fs) {
String title = s.getName().replaceAll(".htm", "").replaceAll(".html", "");
if(s.getName().contains(".htm") || s.getName().contains(".html")){
Document doc = Jsoup.parse(s, "gb2312");
Element titleEl = doc.select("title").first();
titleEl.html(title);
/*
* Jsoup只是解析,不能保存修改,所以要在这里保存修改。
*/
FileOutputStream fos = new FileOutputStream(s, false);
OutputStreamWriter osw = new OutputStreamWriter(fos, "gb2312");
osw.write(doc.html());
osw.close();
}
}
}
}
}