Jsoup

Jsoup是HTML解析器,可直接解析某个URL地址,HTML文本内容。

Jsoup的主要功能如下:

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

使用

  • pom.xml
  <!-- https://mvnrepository.com/artifact/org.jsoup/jsoup -->
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.10.2</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/junit/junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.6</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.7</version>
        </dependency>

Jsoup解析Url

测试类

package Jsoup;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.junit.Test;

import org.jsoup.nodes.Document;
import java.net.URL;

public class JsoupFirstTest {

    @Test
    public void testUrl()throws  Exception{
        //解析URl地址,第一个参数是访问的URl,第二个参数是访问时的超时时间
        Document doc=Jsoup.parse(new URL("http://www.itcast.cn"),1000);

        //使用标签选择器,获取title标签中的内容
        String title=doc.getElementsByTag("title").first().text();
        //打印
        System.out.println(title);

    }
}

Jsoup解析字符串

@Test
    public void testString() throws Exception{
        //使用工具类读取文件,获取字符串

        String content=FileUtils.readFileToString(new File("文本路径"));
        
        //解析字符串
        Document doc=Jsoup.parse(content);
        
        String title=doc.getElementsByTag("title").first().text();
        System.out.println();
    }

Jsoup解析文件

 @Test
    public void testFile() throws Exception{
        //解析文件
        Document doc= Jsoup.parse(new File("文件地址"),"utf8");
        
        String title=doc.getElementsByTag("title").first().text();

        System.out.println(title);
    }

使用Dom方式遍历文档

/*
  1、通过Id查询元素getElementById
  2、通过标签获取元素getElementByTag
  3、通过class获取元素getElementByClass
  4、通过属性获取元素getElementByAttribute
 */
    @Test
    public void testDOM() throws Exception{
        //解析文件,获取Document对象
        Document doc= Jsoup.parse(new File("文件地址"),"utf8");
        //获取元素
        Element element=doc.getElementById("");

        System.out.println("获取到的内容是"+element.text());
    }

获取元素中的数据


    @Test
    public void testData() throws Exception{
        //解析文件,获取Document对象
        Document doc= Jsoup.parse(new File("文件地址"),"utf8");
        //获取元素
        Element element=doc.getElementById("");
        
        String str=null;
        
        //1、从元素中获取ID
        str=element.id();
        //2、从元素中获取className
        str=element.className();

        /*Set<String> classSet=element.classNames();
        
        for(String s:classSet){
            System.out.println(s);
        }*/
        //3、从元素中获取属性sttr
        str=element.attr("id");
        //4、从元素中获取所有属性attributes
        Attributes attribute=element.attributes();
        System.out.println(attribute.toString());
        //5、从元素中获取文本内容
         str=element.text();
        System.out.println("获取到的内容是"+str);
    }
    

使用选择器获取元素

 @Test
    public void testSelector() throws Exception{
        //解析文件,获取Document对象
        Document doc= Jsoup.parse(new File("文件地址"),"utf8");
        //获取元素
        Elements elements=doc.select("span");

        for (Element element : elements) {
            System.out.println(element);
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值