欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java使用Jsoup简单爬虫

程序员文章站 2022-03-26 15:13:19
Jsoup简介jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。官网:https://jsoup.org/主要功能从一个URL,文件或字符串中解析HTML使用DOM或CSS选择器来查找、取出数据使用DOM或CSS选择器来查找、取出数据可操作HTML元素、属性、文本可操作HTML元素、属性、文本注意:jsoup是基于MIT协议发布的,可放心使用于商业项目。M...

Jsoup简介

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

主要功能

从一个URL,文件或字符串中解析HTML

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

可操作HTML元素、属性、文本可操作HTML元素、属性、文本

注意:jsoup是基于MIT协议发布的,可放心使用于商业项目。

Maven依赖关系

        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.11.3</version>
        </dependency>

简单使用

代码例子

public static void main(String[] args) throws IOException {
        //从URL加载HTML
        Document document = Jsoup.connect("http://www.sbfl.cn/").get();
        String title = document.title();
        String data = document.data();
        //通过选择器 选择class=main的组件
        Elements elements = document.select(".main");
        //处理结果,获得文本内容
        for(int i=2;i<elements.size();i++){
            Element element = elements.get(i);
            Elements cateElement = element.select(".lbjs");
            String cate = cateElement.text();
            int start = cate.indexOf("【");
            int end = cate.indexOf("】");
            String cateName = cate.substring(start+1,end);//分类名称
            String cateInstructions = cate.substring(end+1);//分类简介
            System.out.println("分类名称:"+cateName);
            System.out.println("分类简介:"+cateInstructions);

            Elements groupElement = element.select(".left");
            Element groupStart = groupElement.get(0);
            Node node = groupStart.childNode(0);
            String cateNumStr = node.toString().trim();
            String cateNum = cateNumStr.substring(1,3);
            System.out.println(">>>>>:"+cateNum);

            String groups = groupElement.text();
            String[] groupArr = groups.split("【");
            Arrays.stream(groupArr).forEach(it->{
                if(StringUtils.isNotBlank(it)){
                    String[] str = it.split("组】");
                    String group = str[0];          //类似群组
                    String introduction = str[1];   //简介
                    System.out.println("类似群组 :"+group);
                    System.out.println("简介 :"+introduction);
                }
            });
        }
        //获取html中的标题
        System.out.println("title :"+title);
        System.out.println("data :"+title);
    }

结果

java使用Jsoup简单爬虫

本文地址:https://blog.csdn.net/weixin_44263023/article/details/112021705

相关标签: jsoup java