hutool-http实现离线爬虫

文章目录

1.数据爬取流程

1.分析数据源(怎么获取)

2.拿到数据后怎么处理

3.写入数据库存储

2.离线爬虫(Hutool-http实现)

1.获取数据

这里返回的是json格式的字符串

2.数据清洗

通过该工具类将json数据转换成map对象

有一些数据还是数组,通过toList装成List集合后就可以通过该方法转成 Json字符串

3.为什么有各种类型的强转

从调试的结果可以看出,虽然转换成了map集合,但各自原有的类型依然存在,我们强转之后就能调用该类型的方法

4.数据入库

我们使用mybatis-plus的批量插入

3.测试完整代码

plain 复制代码
    @Autowired
    private PostService postService;
    /**
     * 离线爬取数据入库
     */
    @Test
    void getLiXian() {
        /**
         * 1.获取数据
         */
        //请求的地址
        String url = "别人的接口";
        //请求的参数
        String json = "别人的json格式参数";
        String result = HttpRequest.post(url)
                .body(json)
                .execute().body();
        /**
         * 2.数据清洗:json转对象
         */
        Map<String,Object> map = JSONUtil.toBean(result, Map.class);
        JSONObject data = (JSONObject) map.get("data");
        JSONArray records = (JSONArray)data.get("records");
        List<Post> postList = new ArrayList<>();
        for (Object record : records) {
            JSONObject recordNew = (JSONObject) record;
            Post post = new Post();

            JSONArray tags = (JSONArray) recordNew.get("tags");
            List<String> list = tags.toList(String.class);
            post.setTags(JSONUtil.toJsonStr(list));

            post.setContent(recordNew.getStr("content"));
            post.setThumbNum(0);
            post.setFavourNum(0);
            post.setUserId(0L);
            post.setCreateTime(new Date());
            post.setUpdateTime(new Date());
            postList.add(post);
        }
        /**
         * 3.离线爬取数据存储到数据库
         */
        postService.saveBatch(postList);
    }
相关推荐
智慧光迅AINOPOL3 小时前
园区全光网IP+POL架构怎么设计:组网拓扑与带宽演进
网络协议·tcp/ip·架构
必须得开心呀4 小时前
iperf3服务端
网络协议
ITxiaobing202311 小时前
IP 定位服务怎么选:没有“公认第一”,只有场景匹配
服务器·网络协议·tcp/ip
2501_9151063212 小时前
跨平台抓包工具怎么选?TraceEagle抓包鹰 的四种跨平台能力
网络协议·计算机网络·网络安全·ios·adb·https·udp
Multipath71213 小时前
多链路聚合,让具身智能高频视觉感知数据 “回得来、来得快、不中断”
网络·网络协议·5g·智能路由器·信息与通信
重生之高冷汉堡包13 小时前
家庭住宅IP是什么?机房住宅与普通住宅有什么区别
运维·服务器·网络·网络协议·tcp/ip·用户运营
j7~14 小时前
【Linux网络加餐】《HTTPS 协议原理》---详解
网络·网络协议·https·加密·ca认证·解密
紧跟先前的步伐17 小时前
Go AI Agent 实战 12|HTTP 状态码、API 错误处理与日志
开发语言·人工智能·http·ai·golang
byte轻骑兵17 小时前
【HIDS】规范精讲[3]:把连接间隔压到极限——SCI 四档调速的底层机制
网络·网络协议·人机交互·hids·蓝牙协议
流浪00117 小时前
计算机网络篇7:传输层——TCP 网络编程常用接口与调用流程
网络协议·tcp/ip·计算机网络·listen·tcp接口