专栏收藏学习

SpringBoot
SpringCloud
JavaScript
Spring
mysql高级
Tomcat
Git基础与进阶
Java并发编程Spring系列手写SpringCloudSpringCloud系列
SpingCloud
后端
web前端
数据库
SpringCloud
Java并发编程SpringFramework
数据结构与算法
打造一个属于自己的博客平台
SpringCloudAlibaba微服务实战
HTMLjs
spring-boot-cloud
吃透Spring源码
Maven系列MyBatis系列MySQL高手系列Spring高手系列Java高并发系列
docker
ScheduleSpringCloudHTML/CSS/JSVue.js
《SpringCloudAlibaba》《SpringCloudOauth2微服务授权》《SpringCloudNetflix源码剖析》
Vue学习计划
ElasticSearch
JavaScript
Springboot+Vue
spring源码
Sping+SpringMVC+Mybatis学习笔记
JS学习笔记
JavaJVMSpringBoot2.x源码RocketMQ学习JavaIO&NIOJava网络基础Java并发Java数据结构与算法SpringMVC5.x学习JavaJUC源码Spring5.x学习Spring5.x源码
Netty
你好Archaius!
SpringCloud
nodejs
mysql
Shiro系列Sa-TokenDocker微信小程序微信公众号SpringBoot系列第三方平台
springcloud
SQL
《恋上数据结构》
MyBatis
Spring并发
springMVC
Web开发Vue.js+SpringBoot项目实战
vue
前端框架学习
JUCSpringSecurityDockerMysql入门笔记SpringCloudMySql超神之路Spring源码研读Netty框架源码探究
谷粒学院
Web前端
SpringCloud数据结构SpringBoot2SpringCloudAlibabaWeb
Node学习专栏(全网最细的教程)
【spring系列】
前端框架Vue
java学习过程
RocketMQ
websocket
从头开始学分库分表从头开始学Redisson从头开始学Oracle跟着大宇学Shiro吃透Shiro源代码
Java
vue
Oracle商城项目
(夏)SpringCloud微服务开发自媒体项目
Git从入门到精通JS从入门到精通SpringMVC从入门到精通jQuery从入门到精通前端JVM从入门到精通
websocket
Docker
对接第三方接口/微信/阿里云/通联/创蓝等
Vue3后台管理系统搭建和开发Vue3vue
SpringCloud
RestTemplate
vue面试
小白搭博客(基于SpringBoot+Vue)
Mybatis核心源码
java学习之路
OracleVueHTML+CSS+JavaScript+WebJava[精选]一篇精通系列【头脑风暴】
SQL数据库原理及其实践应用
SpringCloud
享学SpringMVC
数据结构和算法
SQL每日一练
MySQL
Docker并发编程VueXXL-JOB框架与中间件
开源项目
音视频专栏
分布式微服务电商专题
Spring
大白话MySQL底层原理剖析
SpringCloudAlibaba实战SpringCloud
前端总结
【MySQL】
前端提高
Javaweb笔记MySQL笔记
Vue.js
《🌹从零搭建开发脚手架》
esspring源码rocketmqNacosMySQL
SpringCloud
JavaScript
SpringBoot+SpringCloud
springcloud权限架构/管理
LeetCode算法刷题MySQL数据库
Java并发编程
源码学习
JavaScript

package com.zzhua.blog;

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.util.UriComponentsBuilder;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class Test001 {
    public static void main(String[] args) throws IOException {


        RestTemplate restTemplate = new RestTemplate();
        UriComponentsBuilder uriComponentsBuilder = UriComponentsBuilder.fromHttpUrl("https://blog.csdn.net/community/home-api/v1/get-attention-column").queryParam("username", "qq_16992475");

        Integer pageNum = 1;
        Integer pageSize = 10;
        ObjectMapper mapper = new ObjectMapper();
        mapper.configure(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES, false);
        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

        List<ChapterEntity> chapterEntityList = new ArrayList<>();

        while (true) {
            uriComponentsBuilder.replaceQueryParam("page", pageNum);
            uriComponentsBuilder.replaceQueryParam("size", pageSize);
            String resultStr = restTemplate.getForObject(uriComponentsBuilder.build().toUriString(), String.class);
            JsonNode jsonNode = mapper.readTree(resultStr);
            JsonNode listJsonNode = jsonNode.get("data").get("list");
            JsonNode totalJsonNode = jsonNode.get("data").get("total");

            List<ChapterEntity> chapterEntity = mapper.readValue(listJsonNode.toString(), new TypeReference<List<ChapterEntity>>(){});
            chapterEntityList.addAll(chapterEntity);

            if (pageNum * pageSize > totalJsonNode.asLong()) {
                break;
            }

            pageNum++;

        }

        System.out.println(chapterEntityList);

        Map<String, List<ChapterEntity>> chapterMap = chapterEntityList.stream().collect(Collectors.groupingBy(ChapterEntity::getUsername));

        for (Map.Entry<String, List<ChapterEntity>> chapterEntry : chapterMap.entrySet()) {
            List<ChapterEntity> chapterEntityListByGroup = chapterEntry.getValue();
            for (ChapterEntity chapterEntity : chapterEntityListByGroup) {
                chapterEntity.setTitle(chapterEntity.getTitle().replaceAll("#|\\s",""));
                System.out.println(String.format("[%s](%s)", chapterEntity.getTitle(), chapterEntity.getUrl()));
            }
            System.out.println("");
        }


    }
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public static class ChapterEntity {

        private Long id;

        private String username;

        private String img;

        private String title;

        private String description;

        private Integer sum;

        private String url;

        private Long people;
    }

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值