java使用Jsoup简单爬虫

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);
    }
结果

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值