欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > hutool-http实现离线爬虫

hutool-http实现离线爬虫

2025/1/13 12:09:50 来源:https://blog.csdn.net/2401_86261141/article/details/145080802  浏览:    关键词:hutool-http实现离线爬虫

文章目录

      • 1.数据爬取流程
      • 2.离线爬虫(Hutool-http实现)
        • 1.获取数据
        • 2.数据清洗
        • 3.为什么有各种类型的强转
        • 4.数据入库
      • 3.测试完整代码

1.数据爬取流程

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

2.拿到数据后怎么处理

3.写入数据库存储

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

1.获取数据

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

2.数据清洗

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

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

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

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

4.数据入库


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

3.测试完整代码

    @Autowiredprivate PostService postService;/*** 离线爬取数据入库*/@Testvoid 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);}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com