Java中的Html解析:使用jsoup

包:jsoup-1.10.2.jar

import java.io.File;
import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

public class TestHtml {
    public static void main(String[] args) throws IOException {
        getElement();
    }

    public static void getElement() throws IOException {
        File file = new File("D:/CSDN.NET.html");

        String str标题 = "";
        String strURL = "";
        String str阅读次数_全 = "";
        String str阅读次数 = "";
        String str评论数_全 = "";
        String str评论数 = "";
        Document doc = Jsoup.parse(file, "UTF-8");
        Document docSub;// 博客每一项
        Elements elmPerLink;// 列表中的每一个博客超链接
        // ---------------------------------------------
        Elements content = doc.getElementsByClass("list_item article_item");
        for (int i = 0; i < content.size(); i++) {
            docSub = Jsoup.parse(content.get(i).toString());
            // 标题+链接
            elmPerLink = content.get(i).getElementsByTag("a");
            str标题 = elmPerLink.get(0).text();
            strURL = elmPerLink.get(0).attr("href");

            str阅读次数_全 = docSub.getElementsByClass("link_view").text();
            str阅读次数 = getNum(str阅读次数_全);

            str评论数_全 = docSub.getElementsByClass("link_comments").text();
            str评论数 = getNum(str评论数_全);

            System.out.println("标题: " + str标题);
            System.out.println("URL: " + strURL);
            System.out.println("阅读次数(原文字): " + str阅读次数_全);
            System.out.println("阅读次数: " + str阅读次数);
            System.out.println("评论数: " + str评论数);
        }
    }

    /**
     * 提取数字
     * 
     * @param阅读(100)
     * @return 100
     */
    public static String getNum(String str) {
        int start = str.indexOf("(");
        return str.substring(start + 1, str.length() - 1);
    }
}

测试:

Java中的Html解析:使用jsoup_第1张图片

格式说明:

<div class="list_item article_item">
        <div class="article_title">   
         <span class="ico ico_type_Original">span>


    <h1>
        <span class="link_title"><a href="/quinnnorris/article/details/57428399">
        java深入浅出解析异常机制            
        >span>
    h1>
div>

        <div class="article_description">
三月份啦,月初第一篇写一份异常机制的完全解析,表明这个月努力学习的决心! 
  以下长文预警!!!
java中的异常处理的目的在于通过使用少量的代码,使得程序有着强大的鲁棒性,并且这种异常处理机制会让你变得非常自信:你的应用中没有你没处理过的错误。处理异常的相关手法看起来是这么的难懂,但是如果掌握的话,会让你的项目收益明显,效果也会是立竿见影。 
如果我们不使用异常处理,那么我们在程序中必须检查特定...        div>
            <div class="article_manage">
             <span class="link_postdate">2017-03-02 19:38span>
    
   
         title="阅读次数"><a href="/quinnnorris/article/details/57428399" title="阅读次数">阅读a>(233)span>
         title="评论次数"><a href="/quinnnorris/article/details/57428399#comments" title="评论次数" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_pinglun'])">评论a>(0)span>

    div>

        <div class="clear">div>
    div>

测试结果:

标题: java深入浅出解析异常机制
URL: http://blog.csdn.net/quinnnorris/article/details/57428399
阅读次数(原文字): 阅读(233)
阅读次数: 233
评论数: 0
标题: java深入理解动态绑定
URL: http://blog.csdn.net/quinnnorris/article/details/57413811
阅读次数(原文字): 阅读(270)
阅读次数: 270
评论数: 0
标题: java对象导论
URL: http://blog.csdn.net/quinnnorris/article/details/56496514
阅读次数(原文字): 阅读(264)
阅读次数: 264
评论数: 0
标题: java算法(一)——初级排序算法
URL: http://blog.csdn.net/quinnnorris/article/details/56292133
阅读次数(原文字): 阅读(312)
阅读次数: 312
评论数: 0
标题: java图形化Swing教程(二)
URL: http://blog.csdn.net/quinnnorris/article/details/55802648
阅读次数(原文字): 阅读(101)
阅读次数: 101
评论数: 0
标题: java图形化Swing教程(一)
URL: http://blog.csdn.net/quinnnorris/article/details/55667020
阅读次数(原文字): 阅读(406)
阅读次数: 406
评论数: 0
标题: java线程(二)——线程同步详解
URL: http://blog.csdn.net/quinnnorris/article/details/55522555
阅读次数(原文字): 阅读(79)
阅读次数: 79
评论数: 0
标题: java——用泛型参数类型构造数组
URL: http://blog.csdn.net/quinnnorris/article/details/55520353
阅读次数(原文字): 阅读(31)
阅读次数: 31
评论数: 0
标题: java线程(一)——线程状态及属性详解
URL: http://blog.csdn.net/quinnnorris/article/details/55106626
阅读次数(原文字): 阅读(72)
阅读次数: 72
评论数: 0
标题: java拷贝机制详解
URL: http://blog.csdn.net/quinnnorris/article/details/55057418
阅读次数(原文字): 阅读(72)
阅读次数: 72
评论数: 0
标题: java集合(二)——集合框架与算法详解
URL: http://blog.csdn.net/quinnnorris/article/details/54969126
阅读次数(原文字): 阅读(60)
阅读次数: 60
评论数: 0
标题: java集合(一)——数据结构详解
URL: http://blog.csdn.net/quinnnorris/article/details/54895024
阅读次数(原文字): 阅读(491)
阅读次数: 491
评论数: 1
标题: java内部类详解
URL: http://blog.csdn.net/quinnnorris/article/details/54864491
阅读次数(原文字): 阅读(106)
阅读次数: 106
评论数: 0
标题: java糖衣语法(Syntactic Sugar)详解
URL: http://blog.csdn.net/quinnnorris/article/details/54849155
阅读次数(原文字): 阅读(48)
阅读次数: 48
评论数: 0
标题: java反射机制详解
URL: http://blog.csdn.net/quinnnorris/article/details/54809297
阅读次数(原文字): 阅读(51)
阅读次数: 51
评论数: 2

被测试源文件:

DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  

    <script src="./CSDN.NET_files/hm.js">script><script type="text/javascript" src="./CSDN.NET_files/tracking.js" charset="utf-8">script>  

    <script type="text/javascript">
        var protocol = window.location.protocol;
        document.write('
                    
                    

你可能感兴趣的:(数据结构与算法,操作系统,xhtml)