导入jsoup-1.8.1.jar
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.safety.Whitelist;
import org.jsoup.select.Elements;
/**
 * jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
jsoup的主要功能如下:
1. 从一个URL,文件或字符串中解析HTML;
2. 使用DOM或CSS选择器来查找、取出数据;
3. 可操作HTML元素、属性、文本;
jsoup是基于MIT协议发布的,可放心使用于商业项目。
注意:获取到了document对象之后,可以类似于操作dom一样来操作
 *
 */
public class TestJsoup {
    /**
     * 文档输入
     * jsoup 可以从包括字符串、URL地址以及本地文件来加载HTML 文档,并生成Document 对象实例。
     * 获取指定HTML 文档指定的body
     * @throws IOException
     */
    public static Document getBody() throws IOException{
        /**方式一*/
        String html = "<html><head><title>开源中国社区</title></head>"
                +"<body><p>这里是jsoup 项目的相关文章</p></body></html>";
        Document doc1 = Jsoup.parse(html);//直接从字符串中输入HTML 文档,有很多其他的构造方法可以使用
        System.out.println(doc1);
        /**方式二*/
        Document doc2 = Jsoup.connect("http://www.baidu.com/more/index.html")//
        .data("query", "java")//请求参数
        .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36")//设置User-Agent
        .cookie("auth", "token")//设置cookie
        .timeout(3000)//设置连接超时时间
        .post();//使用POST方法访问URL
        System.out.println(doc2);
        /**方式三*/
        Document doc3 = Jsoup.connect("http://www.baidu.com").get();//直接获取doc
        System.out.println(doc3);
        return doc3;
    }
    /**
     * 解析并提取HTML 元素
     * 里面有很多操作document的方法,这里以通过id做例子
     * @throws IOException
     */
    public static Element getElement() throws IOException{
        Document doc = Jsoup.connect("http://www.baidu.com").get();
        Element elementById = doc.getElementById("ftConw");
        System.out.println(elementById);
        return elementById;
    }
    /**
     * 改变属性,样式等等
     * 可以通过jsoup提供的各种选择器操作很多东西
     * @throws IOException
     */
    public static void changeAttr() throws IOException{
        Document doc = Jsoup.connect("http://www.baidu.com").get();
        Element elementById = doc.getElementById("ftConw");
        Elements select = elementById.select("a");
        Element element = select.get(0);
        System.out.println("before:"+element);
        element.removeAttr("onmousedown");
        System.out.println("after:"+element);
    }
    /**
     * HTML 文档清理
     * @throws IOException
     */
    public static void cleanHtml() throws IOException{
        Connection connect = Jsoup.connect("http://www.baidu.com");
        Document doc = connect.get();
        /**
         * Whitelist.basic():a, b, blockquote, br, cite, code, dd, dl, dt, em, i, li, ol, p, pre, q,small,strike, strong, sub, sup, u, ul;
         * Whitelist.basicWithImages():a, b, blockquote, br, cite, code, dd, dl,dt, em, i, li, ol, p, pre, q, small, strike, strong, sub, sup, u, ul、img、src;
         * Whitelist.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;
         * Whitelist.simpleText():简单的文本属性b, em, i, strong, u
         * Whitelist.none();//只保留了文本
         * 如果还不能满足要求,可以使用使用addAttributes、addEnforcedAttribute、addProtocols、addTags进行添加
         * 可以结合springmvc的initBinder一起使用
         */
        Whitelist whitelist = Whitelist.basic();//只保留了文本
        String clean = Jsoup.clean(doc.toString(), whitelist);
        System.out.println(clean);
    }

public static void main(String[] args) throws IOException {
        //getBody();
//        getElement();
//        changeAttr();
        cleanHtml();
    }
}

160718、jsoup-1.8.1.jar操作html的更多相关文章

  1. poi-3.11-beta2-20140822.jar操作excel方法

    poi-3.11-beta2-20140822.jar操作excel方法 根据不同类型读取值的方法: // 获取单元格内不同类型的值 public String getValueByType(HSSF ...

  2. jar - 操作jar包的工具

    jar - Manipulates Java Archive (JAR) files. jar命令是一种通用的存档和压缩工具,基于ZIP和ZLIB压缩格式. 常用格式: * 创建jar文件 jar c ...

  3. 使用jxl.jar操作Excel

    在工程的build path中添加jxl.jar,网址:http://www.andykhan.com/jexcelapi/ import java.io.BufferedReader; import ...

  4. org.jsoup.Jsoup找不到jar包问题解决思路

    今天在idea中导入项目,出现了这样的问题 通过idea的自带的导包功能,却提示找不到这个东西.于是就去maven仓库搜索这个咚咚 <!-- https://mvnrepository.com/ ...

  5. 常见 jar包详解

        常见 jar包详解 jar包 用途 axis.jar SOAP引擎包 commons-discovery-0.2.jar 用来发现.查找和实现可插入式接口,提供一些一般类实例化.单件的生命周期 ...

  6. Jsoup解析HTML、加载文档等实例

    一.引入jsoup的jar包:http://jsoup.org/download 补充:http://jsoup.org/apidocs/   Jsoup API    可以了解更详细的内容 二.Js ...

  7. Jsoup简介

    Jsoup简介 一.概述 Jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来 ...

  8. Jsoup使用随记

    这段时间工作比较空闲,在网上找资料学习的时候看到数据抓取这一块,来了兴趣 用jsoup实现数据抓取着实方便,唯一美中不足的是官方API是英文版的,对我这样英语水平不好的程序员来说着实困扰,只能一点点的 ...

  9. 常用jar包用途

    jar包 用途 axis.jar SOAP引擎包 commons-discovery-0.2.jar 用来发现.查找和实现可插入式接口,提供一些一般类实例化.单件的生命周期管理的常用方法. jaxrp ...

随机推荐

  1. 使用jq Deferred防止代码被回调函数分解分解的支离破碎

    //移动人物 function moveInterval(stopPosotion){ var dtd = $.Deferred(); // 生成Deferred对象 var yidong= wind ...

  2. oracle 数据导入和导出(原创)

    oracle的数据导入导出必须是在两个地方建立相同的用户才能完整导入(本地导入新的数据库需重建权限).所以导入就得按以下步骤进行: 假定服务器端用户为puser 服务器端导出可以这样做: 导出数据:e ...

  3. 【LeetCode-面试算法经典-Java实现】【075-Sort Colors (颜色排序)】

    [075-Sort Colors (颜色排序)] [LeetCode-面试算法经典-Java实现][全部题目文件夹索引] 原题 Given an array with n objects colore ...

  4. python DataFrame获取行数、列数、索引及第几行第几列的值

    print df.columns.size#列数 2 print df.iloc[:,0].size#行数 3 print df.ix[[0]].index.values[0]#索引值 0 print ...

  5. net 将WebService生成dll文件

    通过dll来引用webservice的方法 1.打开浏览器,然后写输入http://192.168.0.2/RentService.asmx?wsdl 2.然后选择浏览器->文件->另存为 ...

  6. 编程算法 - 高速排序算法 代码(C)

    高速排序算法 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 经典的高速排序算法, 作为一个编程者, 不论什么时候都要完整的手写. 代码: /* * m ...

  7. vivado设计三:一步一步生成自己的自定义IP核

    开发环境:xp  vivado2013.4 基于AXI-Lite的用户自定义IP核设计 这里以用户自定义led_ip为例: 1.建立工程 和设计一过程一样,见vivado设计一http://blog. ...

  8. html页面中js判断浏览器是否是IE浏览器及IE浏览器版本

    HTML里: HTML代码中,在编写网页代码时,各种浏览器的兼容性是个必须考虑的问题,有些时候无法找到适合所有浏览器的写法,就只能写根据浏览器种类区别的代码,这时就要用到判断代码了.在HTML代码中, ...

  9. SQL基础之聚合与排序

    聚合函数是用来求和,平均值,最大最小值一类的函数. 常用的有COUNT.SUM.MAX.MIN.AVG. count() 参数为列名,也可以使用*,表示全部列. 默认*会统计所有行的数据,如果想过滤掉 ...

  10. 地址url的split()方法使用;

    stringObject.split(separator,howmany) 参数 描述 separator 必需.字符串或正则表达式,从该参数指定的地方分割 stringObject. howmany ...