Jsoup

项目html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>CSDN - 专业开发者社区</title>
</head>
<body>
    <div class="city">
        <h3 id="city_bj">北京中心</h3>
        <img src="/2018czgw/images/slogan.jpg/" class="slogan" />
            <div class="city_in">
                <div class="city_con" style="display: none;">
                    <ul>
                        <li id="test" city="北京" class="class_a class_b">
                            <a href="https://www.csdn.net/" target="_blank">
                                <span class="s_name">北京</span>
                            </a>
                        </li>
                        <li>
                            <a href="https://www.csdn.net/" target="_blank">
                                <span class="s_name">上海</span>
                            </a>
                        </li>

                        <li>
                            <a href="https://www.csdn.net/" target="_blank">
                                <span abc="123" class="s_name">广州</span>
                            </a>
                        </li>

                        <ul>
                            <li>天津</li>
                        </ul>
                    </ul>
                </div>
            </div>
    </div>
</body>
</html>

1. Jsoup介绍


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

​ jsoup的主要功能如下:

​ 1.从一个URL, 文件或字符串中解析HTML;

​ 2.使用DOM或CSS选择器来查找、取出数据;

​ 3.可操作HTML元素、属性、文本;

2. Jsoup解析URL


​ 加入jsoup依赖导入:

在这里插入图片描述
在这里插入图片描述

​ PS: 虽然使用Jsoup可以替代HttpClient直接发送请求解析数据, 但是往往不会这样用, 因为实际的开发过程中, 需要使用到多线程, 连接池, 代理等等方式, 而jsoup对这些的支持并不是很好, 所以我们一般把jsoup仅仅作为Html解析工具使用.

3. 解析字符串


在这里插入图片描述

4. 解析文件


在这里插入图片描述

5. 使用dom方式遍历文档


元素获取:
  1. 根据id查询元素getElementById
  2. 根据标签获取元素getElementsByTag
  3. 根据class获取元素getElementsByClass
  4. 根据属性获取元素getElementsByAttribute
    在这里插入图片描述

元素中获取数据:

  1. 从元素中获取id
  2. 从元素中获取className
  3. 从元素中获取属性值的attr
  4. 从元素中获取所有属性attributes
  5. 从元素中获取文本内容text
    在这里插入图片描述

6. Selector选择器概述


tagname: 通过标签查找元素, 比如: span

#id: 通过ID查找元素, 比如: #city_bj

.class: 通过class名称查找元素, 比如: class_a

[attribute]: 利用属性查找元素, 比如: [abc]

[attr=value]: 利用属性值来查找元素, 比如: [class=s_name]

在这里插入图片描述

7. Selector选择器组合使用


el#id: 元素+ID, 比如: h3#city_bj

el.class: 元素+class, 比如: li.class_a

el[attr]: 元素+属性名, 比如: span[abc]

任意组合: 比如: span[abc].s_name

ancestor child: 查找某个元素下子元素, 比如: .city_con li 查找"city_con"下的所有li

parent > child: 查找某个父元素下的直接子元素, 比如: .city_con > ul > li 查找 city_con 第一级(直接子元素) 的url, 再找所有ul下的第一级li

parent > : 查找某个父元素下所有直接子元素

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

只因为你温柔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值