• jsoup解析HTML及简单实例


    jsoup 中文参考文献    http://www.open-open.com/jsoup/

           本文将利用jsoup,简单实现网络抓取的功能,并给出一个小实例,该实例效果为:获取作者本人在博客园写的所有文章的标题。

           一:建立一个java工程,导入jsoup包,junit(导入junit包,hamcrest包)。若不知junit为何要导入两个包,请点击链接‘junit的使用

           二:建立一个demo.java类,实现代码如下:        

    import java.io.IOException;
    
    import org.jsoup.Connection;
    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Document;
    import org.jsoup.nodes.Element;
    import org.jsoup.select.Elements;
    import org.junit.Test;
    
    public class demo {
        @Test
        public void reasUrl() throws IOException {
            String url = "http://www.cnblogs.com/sky-";
            Connection conn = Jsoup.connect(url); // 建立与url中页面的连接
            Document doc = conn.get(); // 解析页面
            Elements links = doc.select("a[href]"); // 获取页面中所有的超链接
            int i = 1;
            for (Element link : links) {
                if ("阅读全文".equals(link.text())) { // 获取页面中每篇文章‘阅读全文’的链接,进入文章
                    Document doc2 = Jsoup.connect(link.attr("abs:href")).get(); // 解析每篇文章的页面
                    System.out.println("第" + i + "篇:" + doc2.title()); // 把该文章的标题打印出来
                    i++;
                }
            }
        }
    }

           三:运行项目即可得到作者本人在博客园写的所有文章的标题

    第1篇:jsoup解析HTML及简单实例 - sky_烁 - 博客园
    第2篇:面向接口编程及适配器模式 - sky_烁 - 博客园
    第3篇:数据库 SQL语句小结 - sky_烁 - 博客园
  • 相关阅读:
    JSON的序列化和反序列化
    XML的序列化和反序列化
    FTP相关操作
    滑动换屏——Fragment
    AngularJS中复选框(checkbox)的ng-model
    AngularJS将时间戳格式化处理
    Let definitions are not supported by current JavaScript version
    MyBatis中的 suffixOverrides="," 失效
    MyBatisSystemException: Malformed OGNL expression: status != null
    MySQL字符串截取
  • 原文地址:https://www.cnblogs.com/sky-/p/4623501.html
Copyright © 2020-2023  润新知