使用Jsoup提取接口中的图片

本文介绍了如何使用Hutool库解析NBA官网的JSON数据,并通过JSoup爬虫技术获取球员信息,包括头像链接,然后将图片下载并保存到本地。重点展示了HTTP请求、JSON处理和文件操作的结合应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导入依赖

 <!--爬虫-->
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.10.2</version>
        </dependency>

使用hutool工具解析json数据

 @GetMapping("/pachou")
    @ApiOperation("爬虫")
    public String teamMessage()  {

//        s = HttpUtil.get("https://china.nba.cn/stats2/season/conferencestanding.json?");
        s = HttpUtil.get("https://china.nba.cn/stats2/league/playerlist.json");

        return s;
    }

提取并保存在磁盘中

  @PostMapping("/addBatch2")
    @ApiOperation(value = "批量插入")
    public Result addBatch2(@RequestBody String str) throws IOException, InterruptedException {

        JSONArray jsonArray = JSONArray.parseArray(str);
        FileOutputStream outputStream =null;
//        FileInputStream inputStream =null;
        InputStream inputStream=null;
        for (int i = 0; i < jsonArray.size(); i++) {
            JSONObject jsonObject = JSONObject.parseObject(jsonArray.get(i).toString());
            String playerProfile = jsonObject.getString("playerProfile");
            String teamProfile = jsonObject.getString("teamProfile");
            JSONObject object = JSONObject.parseObject(playerProfile);
            JSONObject object2 = JSONObject.parseObject(teamProfile);
//            System.out.println(object.getString("displayName"));
//            System.out.println(object2.getString("city"));
            String playerImg = object.getString("playerId");
            String displayName = object.getString("displayName");
            System.out.println(playerImg);
            try {
                String url="https://res.nba.cn/media/img/players/head/260x190/"+playerImg+".png";
                URL imgsrcUrl = new URL(url);
                URLConnection connection = imgsrcUrl.openConnection();
                inputStream = connection.getInputStream();
                String path="F:\\chenchao\\NBA\\"+displayName+".png";
                outputStream = new FileOutputStream(path);
                byte[] bytes = new byte[1024];
                int len = 0;
                while((len=inputStream.read(bytes))!=-1){
                    outputStream.write(bytes,0,len);

                }

                System.out.println("下载完成");
            } catch (IOException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }

        }

        return Result.success();
    }

效果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值