龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

Java中使用开源库JSoup解析HTML文件实例(2)

时间:2014-09-26 03:26来源:网络整理 作者:网络 点击:
分享到:
下面是一个解析HTML字符串,网络上下载的HTML文件,以及本地文件系统中的HTML文件的完整的Java程序。你可以使用Eclipse IDE或者别的IDE甚至命令来运行这个程

下面是一个解析HTML字符串,网络上下载的HTML文件,以及本地文件系统中的HTML文件的完整的Java程序。你可以使用Eclipse IDE或者别的IDE甚至命令来运行这个程序。在Eclipse里面则很简单,拷贝这份代码,新建一个Java工程,在src包上右键并粘贴进去就可以了。Eclipse会去创建正确的包及同名的Java源文件的,因此工作量最小。如果你已经有一个Java示例工程了,那么仅需一步就可以了。下面的这个Java程序展示了解析及遍历HTML文件的三个不同例子。第一个例子中,我们直接解析了一个内容为HTML的字符串,第二个例子中我们解析了一个从URL中下载的HTML文件,第三个中我们从本地文件系统中加载了一个HTML文档并进行解析。第一和第三个例子中都用到了parse方法来获取一个Document对象,你可以查询它来提取出任何的标签值或者属性值。第二个例子中,我们用到了Jsoup.connect方法,它会去创建URL的连接,下载HTML并进行解析。这个方法也会返回Document,它可以用于后续的查询及获取标签或者属性的值。

复制代码 代码如下:

import java.io.IOException; 
  
import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 
import org.jsoup.nodes.Element; 
 
 
/** 
[*] Java Program to parse/read HTML documents from File using Jsoup library. 
[*] Jsoup is an open source library which allows Java developer to parse HTML 
[*] files and extract elements, manipulate data, change style using DOM, CSS and 
[*] JQuery like method. 
[*] 
[*] @author Javin Paul 
[*]/ 
public class HTMLParser{ 
  
    public static void main(String args[]) { 
  
        // Parse HTML String using JSoup library 
        String HTMLSTring = "<!DOCTYPE html>" 
                + "<html>" 
                + "<head>" 
                + "<title>JSoup Example</title>" 
                + "</head>" 
                + "<body>" 
                + "|[b]HelloWorld[/b]" 
                + "" 
                + "</body>" 
                + "</html>"; 
  
        Document html = Jsoup.parse(HTMLSTring); 
        String title = html.title(); 
        String h1 = html.body().getElementsByTag("h1").text(); 
  
        System.out.println("Input HTML String to JSoup :" + HTMLSTring); 
        System.out.println("After parsing, Title : " + title); 
        System.out.println("Afte parsing, Heading : " + h1); 
  
        // JSoup Example 2 - Reading HTML page from URL 
        Document doc; 
        try { 
            doc = Jsoup.connect("http://google.com/").get(); 
            title = doc.title(); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
  
        System.out.println("Jsoup Can read HTML page from URL, title : " + title); 
  
        // JSoup Example 3 - Parsing an HTML file in Java 
        //Document htmlFile = Jsoup.parse("login.html", "ISO-8859-1"); // wrong 
        Document htmlFile = null; 
        try { 
            htmlFile = Jsoup.parse(new File("login.html"), "ISO-8859-1"); 
        } catch (IOException e) { 
            // TODO Auto-generated catch block 
            e.printStackTrace(); 
        } // right 
        title = htmlFile.title(); 
        Element div = htmlFile.getElementById("login"); 
        String cssClass = div.className(); // getting class form HTML element 
  
        System.out.println("Jsoup can also parse HTML file directly"); 
        System.out.println("title : " + title); 
        System.out.println("class of div tag : " + cssClass); 
    } 
  

输出:

精彩图集

赞助商链接