专栏关注学习
Node学习专栏(全网最细的教程)
【spring系列】
SpringCloud
前端框架Vue
java学习过程
RocketMQ
Spring
Tomcat
websocket
从头开始学Redisson
从头开始学Oracle
跟着大宇学Shiro
吃透Shiro源代码
Git基础与进阶
Java并发编程
Spring系列
手写SpringCloud
SpringCloud系列
商城项目
(夏)SpringCloud微服务开发自媒体项目
Git从入门到精通
JS从入门到精通
SpringMVC从入门到精通
jQuery从入门到精通
前端
JVM从入门到精通
web前端
数据库
SpringCloud
SpringCloud
RestTemplate
小白搭博客(基于SpringBoot+Vue)
Mybatis核心源码
java学习之路
spring-boot-cloud
吃透Spring源码
Maven系列
MyBatis系列
MySQL高手系列
Spring高手系列
Java高并发系列
docker
SpringCloud
Schedule
SpringCloud
HTML/CSS/JS
Vue.js
《SpringCloudAlibaba》
《SpringCloudOauth2微服务授权》
《SpringCloudNetflix源码剖析》
享学SpringMVC
JavaScript
spring源码
Sping+SpringMVC+Mybatis学习笔记
开源项目
JS学习笔记
SpringBoot2.x源码
RocketMQ学习
JavaIO
Java网络基础
Java并发
Java数据结构与算法
SpringMVC5.x学习
JavaJUC源码
Spring5.x学习
Spring5.x源码
音视频专栏
你好Archaius!
Spring
SpringCloud
SpringCloudAlibaba实战
SpringCloud
nodejs
【MySQL】
Shiro系列
Sa-Token
Docker
微信小程序
微信公众号
SpringBoot系列
第三方平台
Vue.js
《从零搭建开发脚手架》
《恋上数据结构》
MyBatis
Spring
并发
JavaScript
Web开发
Vue.js+SpringBoot项目实战
Netty框架源码探究
Java并发编程
数据结构
SpringBoot2
SpringCloudAlibaba
Web
Web前端
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 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;
}