精华内容
下载资源
问答
  • jsoup解析html

    2016-12-29 10:17:11
    java的jsoup解析html. 例子工程jsoup目录文件夹src/com下的start.java文件是一个简单例子.文件夹src下的jsoup-1.8.1.jar文件是需要的jar包
  • jsoup解析HTML

    2014-05-18 22:01:47
    jsoup解析HTML,获取htmlUrl
  • Jsoup解析html

    2012-06-11 22:41:33
    使用Jsoup解析Html文档,无须正则表达式,使用元素定位到Html的标签元素
  • Jsoup解析HTML

    2019-10-20 14:39:32
    Jsoup解析HTML   Jsoup是一款Java的HTML解析器,可以直接解析某个URL地址,也可以解析HTML内容。其主要的功能包括解析HTML页面,通过DOM或者CSS选择器来查找、提取数据,可以更改HTML内容,HTML文档过滤清理。 一、...

    Jsoup解析HTML

      Jsoup是一款Java的HTML解析器,可以直接解析某个URL地址,也可以解析HTML内容。其主要的功能包括解析HTML页面,通过DOM或者CSS选择器来查找、提取数据,可以更改HTML内容,HTML文档过滤清理。

    一、文档清理

    1、字符串转化

    String html = "<html><div id=\"blog_list\"><div class=\"blog_title\"> <a href=\"url1\">第一篇博客</a></div><div class=\"blog_title\"><a href=\"url2\">第二篇博客</a></div><div class=\"blog_title\"><a href=\"url3\">第三篇博客</a></div></div></html>";
    	    Document doc = Jsoup.parse(html);
    

    2、Jsoup的简单请求URL

    Document doc1 = Jsoup.connect("http://www.oschina.net/").get(); 
    	    //2.2 post请求
    	    Document doc2 = Jsoup.connect("http://www.oschina.net/") 
    	    		  .data("query", "Java")   // 请求参数
    	    		  .userAgent("I ’ m jsoup") // 设置 User-Agent 
    	    		  .cookie("auth", "token") // 设置 cookie 
    	    		  .timeout(3000)           // 设置连接超时时间
    	    		  .post();                 
    

    3、解析本地html文件

      Jsoup.parse 的第三个参数,为html中的相对路径加上前缀。因为很多超链接、图片、外部脚本、CSS文件等用到相对路径,而jsoup会自动为这些URL加上一个前缀。

    <a href=/project> 开源软件 </a>

    <a href=http://www.oschina.net/project> 开源软件 </a>。

    File input = new File("D:/test.html"); 
    	    Document doc3 = Jsoup.parse(input,"UTF-8","http://www.oschina.net/"); 
    

    二、解析并提取HTML元素

    • 获取元素:

      • getElementById ()
      • getElementsByTag ()
      • getElementsByClass()
      • select() 与jquery的$选择器类似
    • 获取属性: attr(String attrname)

    • 获取文本:text()

    	    String html = "<html><div id=\"blog_list\"><div class=\"blog_title\"> <a href=\"url1\">第一篇博客</a></div><div class=\"blog_title\"><a href=\"url2\">第二篇博客</a></div><div class=\"blog_title\"><a href=\"url3\">第三篇博客</a></div></div></html>";
    	    Document doc = Jsoup.parse(html);
    	    //类JavaScript的选择器
    	    Elements elements = doc.getElementById("blog_list")
                .getElementsByClass("blog_title");
    	    for( Element element : elements ){
    	    	System.out.print(element.getElementsByTag("a").text()+" ");
    	     	System.out.println(element.select("a").attr("href"));
    	    }
    

    三、修改数据

    • 增加class:addClass(“mylinkclass”)
    • 删除class: removeClas(“mylinkclass”)
    • 修改属性:attr(“rel”, “nofollow”);
    • 删除属性:removeAttr(“onclick”);
    • 清空值:val("");
    • 清空文本:text("")
     String html = "<html><div id=\"blog_list\"><div class=\"blog_title\"> <a href=\"url1\">第一篇博客</a></div><div class=\"blog_title\"><a href=\"url2\">第二篇博客</a></div><div class=\"blog_title\"><a href=\"url3\">第三篇博客</a></div></div></html>";
    	    Document doc = Jsoup.parse(html);
    	    Elements elements = doc.select("div[id=blog_list] a");
    	    for(Element element : elements) {
    	    	element.addClass("myclass");
    	    	element.attr("href", "123");
    	    	element.parent().removeAttr("class");
    	    	element.text("");
    	    }
    	    System.out.println(doc.toString());
    

    四、文档过滤清理

      Whitelist类定义了一些可以被保留的标签和属性,不属于这个范围的标签和属性的都要被删除。

    1、Whitelist默认配置

    方法 属性
    none() 只允许包含文本信息
    basic() 允许的标签包括:a, b, blockquote, br, cite, code, dd, dl, dt, em, i, li, ol, p, pre, q, small, strike, strong, sub, sup, u, ul, 以及合适的属性
    simpleText() 只允许 b, em, i, strong, u 这些标签
    basicWithImages() 在 basic() 的基础上增加了图片
    relaxed() 这个过滤器允许的标签最多,包括:a, b, blockquote, br, caption, cite, code, col, colgroup, dd, dl, dt, em, h1, h2, h3, h4, h5, h6, i, img, li, ol, p, pre, q, small, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, u, ul

    2、Whitelis添加自定义配置

    方法 属性
    addTags(tag…) 向Whitelist添加标签
    addAttributes(tag,keys…) 给标签添加属性。Tag是属性名,keys对应的是一个个属性值。例如:addAttributes(“a”, “href”, “class”) 表示:给标签a添加href和class属性,即允许标签a包含href和class属性。如果想给每一个标签添加一组属性,使用:all。例如: addAttributes(":all", “class”).即给每个标签添加class属性。
    addEnforcedAttribute(tag,key,value) 给标签添加强制性属性,如果标签已经存在了要添加的属性,则覆盖原有值。tag:标签;key:标签的键;value:标签的键对应的值。例如: addEnforcedAttribute(“a”, “rel”, “nofollow”) 表示
    addProtocols(tag,key, protocols…) 给URL属性添加协议。例如: addProtocols(“a”, “href”, “ftp”, “http”, “https”)标签a的href键可以指向的协议有ftp、http、https

    示例

    	    String html = "<html><div id=\"blog_list\"><div class=\"blog_title\"> <a href=\"http://www.baidu.com\">第一篇博客</a></div><div class=\"blog_title\"><a href=\"url2\">第二篇博客</a></div><div class=\"blog_title\"><a href=\"url3\">第三篇博客</a></div></div></html>";
    	    String safe = Jsoup.clean(html, Whitelist.basic().
                                      addProtocols("a", "href", "http"));
    	    System.out.println(safe);
    

    输出

    <div>
     <div class="blog_title"> 
      <a href="http://src" rel="nofollow">第一篇博客</a>
     </div>
     <div class="blog_title">
      <a rel="nofollow">第二篇博客</a>
     </div>
     <div class="blog_title">
      <a rel="nofollow">第三篇博客</a>
     </div>
    </div>
    

    参考:https://www.ibm.com/developerworks/cn/java/j-lo-jsouphtml/index.html

    展开全文
  • Jsoup解析Html

    2017-03-14 11:28:48
    关于jsoup解析Html,网上有中文API文档,可以看看,我这里分享一个小小的列子,也是我从网上看到的,觉得挺好的,分享一下 /**  * 博客园博文抓取工具  *  * @author Victor Zhang  * @date 2016/11/8. ...

    关于jsoup解析Html,网上有中文API文档,可以看看,我这里分享一个小小的列子,也是我从网上看到的,觉得挺好的,分享一下


    /**
     * 博客园博文抓取工具
     *
     * @author Victor Zhang
     * @date 2016/11/8.
     */
    public class CnblogParser {
        private static final String BLOG_URL = "http://www.cnblogs.com/jingmoxukong/";


        public static void main(String[] args) throws Exception {
            int total = 0;
            for (int page = 0; page <= 16; page++) {
                total += printAllTitleInPage(BLOG_URL, page);
            }
            System.out.println("总文章数:" + total);
        }


        /**
         * 获取指定页HTML 文档指定的body
         *
         * @throws IOException
         */
        private static int printAllTitleInPage(String blogUrl, int page) throws IOException {
            int count = 0;
            Document doc = Jsoup.connect(blogUrl + "default.html?page=" + page).get();
            Elements postTitles = doc.body().getElementsByClass("postTitle");
            for (Element postTitle : postTitles) {
                Elements links = postTitle.getElementsByTag("a");
                for (Element link : links) {
                    if (link.hasText()) {
                        System.out.println(link.text());
                        System.out.println(link.attr("href"));
                        count++;
                    }
                }
            }
            return count;
        }
    }

    展开全文
  • jsoup 解析html

    2018-11-27 14:01:31
    1.jsoup 解析html  官方网站:https://jsoup.org/  测试网址:https://try.jsoup.org/ ,这里使用远程html作为测试: 2.demo   2.1 解析范例:     3.参考资料:     4.代码...

    1.jsoup 解析html
       官方网站:https://jsoup.org/

       测试网址:https://try.jsoup.org/ ,这里使用远程html作为测试:

    2.demo

     

    2.1 解析范例:

     

     

    3.参考资料:

     

     

    4.代码

    展开全文
  • JSoup 解析html

    2018-03-15 16:45:45
    你可以用它: 你可以从一个URL,文件或字符串中解析HTML;可以使用DOM或CSS选择器来查找、取出数据;可以可操作HTML元素、属性、文本;同时jsoup基于MIT协议发布的,可放心使用于商业项目。简单使用:1.将html转换...

        JSOUP,JAVA语言界的Jquery解析神器。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。你可以用它:

    •  你可以从一个URL,文件或字符串中解析HTML;
    • 可以使用DOM或CSS选择器来查找、取出数据;
    • 可以可操作HTML元素、属性、文本;

    同时jsoup基于MIT协议发布的,可放心使用于商业项目。

    简单使用:

    1.将html转换为document对象

          例子: Doucument doucment=Jsoup.parse(html);       

    2.选择器的使用

         例子:document.select(".comProfile p").html();//获取class为comProfile 下的p元素中的内容。

    3.选择器的介绍

        选定元素后,就可以对元素做相应操作。那么选择元素,重要的就是jsoup的选择器了:

            基础选择器:

                Tagname:通过标签查找元素(例如:a)

                ns|tag:通过标签在命名空间查找元素,例如:fb|name查找<fb:name>元素

                #id:通过ID查找元素,例如#logo   

                .class:通过类型名称查找元素,例如.masthead    

                [attribute]:带有属性的元素,例如[href]

                [^attr]:带有名称前缀的元素,例如[^data-]查找HTML5带有数据集(dataset)属性的元素

                [attr=value]:带有属性值的元素,例如[width=500]    

                [attr^=value],[attr$=value],[attr*=value]:包含属性且其值以value开头、结尾或包含value的元素,例如[href*=/path/]    

                [attr~=regex]:属性值满足正则表达式的元素,例如img[src~=(?i)\.(png|jpe?g)]

                *:所有元素,例如*

             组合选择器

                    el#id:带有ID的元素,例如div#logo

                    el.class:带某类的元素,例如. div.masthead

                    el[attr]:包含某属性的元素,例如a[href]

                    任意组合:例如a[href].highlight

                    ancestor child:继承自某祖(父)元素的子元素,例如.body p查找“body”块下的p元素    

                    parent > child:直接为父元素后代的子元素,例如: div.content > p 查找类名为content的div的子元素p

                                            ,body > * 查找body元素的直系子元素

                    siblingA + siblingB:查找由同级元素A前导的同级元素,例如div.head + div

                    siblingA ~ siblingX:查找同级元素A前导的同级元素X例如h1 ~ p

                    el, el, el:多个选择器组合,查找匹配任一选择器的唯一元素,例如div.masthead, div.logo

            伪选择器:

                    :lt(n):查找索引值(即DOM树中相对于其父元素的位置)小于n的同级元素,例如td:lt(3)

                    :gt(n):查找查找索引值大于n的同级元素,例如div p:gt(2)

                    :eq(n) :查找索引值等于n的同级元素,例如form input:eq(1)

                    :has(seletor):查找匹配选择器包含元素的元素,例如div:has(p)

                    :not(selector):查找不匹配选择器的元素,例如div:not(.logo)

                    :contains(text):查找包含给定文本的元素,大小写敏感,例如p:contains(jsoup)

                    :containsOwn(text):查找直接包含给定文本的元素

                    :matches(regex):查找其文本匹配指定的正则表达式的元素,例如div:matches((?i)login)

                    :matchesOwn(regex):查找其自身文本匹配指定的正则表达式的元素

            注意:上述伪选择器是索引基数从0开始


    展开全文
  • Jsoup 解析HTML

    2019-01-29 16:29:46
     jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。  设置批量的代理ip进行请求连接,可以模拟...
  • Jsoup 解析 HTML

    2019-07-07 14:02:29
    Jsoup 文档 方法 要取得一个属性的值,可以使用Node.attr(String key)方法 对于一个元素中的文本,可以使用Element.text()方法 对于要取得元素或属性中的HTML内容,可以使用Element.html(), 或Node.outerHtml...
  • Jsoup 解析html

    2017-07-21 16:38:23
    根据地区搜索区号 ... 解析该网站html获取到区号数据 简单解析 public static String findAreaCode(String areaName) throws Excepti

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,081
精华内容 4,432
关键字:

jsoup解析html