jsoup解析html之table表格

jsoup解析html之table表格

jsoup说明

一款Java 的HTML解析器
jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。

主要功能

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

需求说明

现在需要从上游过来一批数据,我们解析之后做一些逻辑处理,批量录入数据库;这些数据就是excel,一条一条的,只不过它不是标准的xls或者xlsx形式,而是处理过的html格式加工成xls格式,如果我们使用easypoi或者easyexcel解析会出现错误提示java.io.IOException: Your InputStream was neither an OLE2 stream, nor an OOXML stream,简而言之就是,这两个解析框架不识别,不是标准的xls或者xlsx,解决方法就是从上游导出的数据,先保存为标准的xls后者xlsx形式不会出现问题,但是,但是,现在需要从程序上进行控制。

代码操作

核心api

Jsoup
The core public access point to the jsoup functionality.
Parse HTML into a Document. The parser will make a sensible, balanced document tree out of any HTML.

Document :文档对象。每份HTML页面都是一个文档对象,Document 是 jsoup 体系中最顶层的结构。
Element:元素对象。一个 Document 中可以着包含着多个 Element 对象,可以使用 Element 对象来遍历节点提取数据或者直接操作HTML。
Elements:元素对象集合,类似于List。

核心方法

eachText()

    /**
     * Get the text content of each of the matched elements. If an element has no text, then it is not included in the
     * result.
     * @return A list of each matched element's text content.
     * @see Element#text()
     * @see Element#hasText()
     * @see #text()
     */
    public List<String> eachText() {
   
        ArrayList<String> texts = new ArrayList<>(size());
        for (Element el: this) {
   
            if (el.hasText())
                texts.add(el.text());
        }
        return texts;
    }

select()

    /**
     * Find matching elements within this element list.
     * @param query A {@link Selector} query
     * @return the filtered list of elements, or an empty list if none match.
     */
    pub
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值