解析和遍历本地html文档
首先再本地创建一个html文件,如下:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>技术客</title> </head> <body> 这是一个简单的HTML <p> <a href="/doc.html">https://www.sunjs.com</a> </p> </body> </html>
保存至本地某个磁盘目录下。
public static void main(String[] args) throws IOException { Document doc = Jsoup.parse(new File("/Users/sun/Documents/index.html"), "utf-8", "https://www.baidu.com"); System.out.println("Title is:"+doc.title()); System.out.println("Body is:"+doc.body().text()); System.out.println(doc.selectFirst("a").attr("href")); System.out.println(doc.selectFirst("a").attr("abs:href"));//abs 方式在后边有详细的讲解 }
输出结果:
Title is:技术客 Body is:这是一个简单的HTML https://www.sunjs.com /doc.html https://www.baidu.com/doc.html
parse(File in, String charsetName, String baseUri) 这个方法用来加载和解析一个HTML文件。如在加载文件的时候发生错误,将抛出IOException,应作适当处理。
baseUri 参数用于解决文件中URLs是相对路径的问题。如果不需要可以传入一个空的字符串。
另外还有一个方法parse(File in, String charsetName) ,它使用文件的路径做为baseUri。 这个方法适用于如果被解析文件位于网站的本地文件系统,且相关链接也指向该文件系统。
parse 类方法一共有以下几种,可以简单的了解以下,其中还包括input流的方式读取解析出 Document