webmagic 实现爬取数据以 JSON 格式保存到数据库

采集数据比较头痛的一个问题就是数据的保存了: 对于格式化的数据还好说, 可以直接存储到传统的关系型数据库当中, 可是对于一些非格式化的数据我们只能进行人工干预, 将其转化为格式化数据再进行存储. 最近的工作中碰到一个比较棘手的问题: 采集的数据的格式不一样, 且不同的网页的内容出现的也比较随意, 当时也是摸不到头脑.

经过接近半天的 摸索:

  首先采集到目标位置的信息;

  接着处理采集的信息转化为 json 串存储进数据库; ----------- 对于 MySQL 5.7 以上的版本才支持存储 json 格式的数据

  首先采集目标信息的难度不大, 重点就来到了如何将 HTML 标签页的信息转化为 JSON 格式的信息!

  经过查询我知道了常见的 String ----> JSON 格式的转化有 3 种:

    第一种:string直接转json

            String json = "{\"2\":\"efg\",\"1\":\"abc\"}"; JSONObject json_test =
            JSONObject.fromObject(json); 将string的双引号转义即可,适用于字符串较短的

        第二种:将string转为list后转为json

            Listlist = new ArrayList(); list.add("username");
            list.add("age"); list.add("sex"); JSONArray array = new JSONArray();
            array.add(list);

            可以使用list的add函数将需要的字符串拼接即可,但是这个只能使用jsonarry

         第三种:将string转为map后转为json
            
            对于 alibaba 的 fastjson 直接使用对应的 api
            String jsonString = JSONUtils.toJSONString(map);

  经过分析, 我的这种情况只好使用   第三种   的方式! 现在的问题就来到了: 将 html 标签的内容转化为 map 集合, SO EASY!!!

  最终我的问题迎刃而解.

猜你喜欢

转载自www.cnblogs.com/204Handsome/p/9122264.html