采集数据比较头痛的一个问题就是数据的保存了: 对于格式化的数据还好说, 可以直接存储到传统的关系型数据库当中, 可是对于一些非格式化的数据我们只能进行人工干预, 将其转化为格式化数据再进行存储. 最近的工作中碰到一个比较棘手的问题: 采集的数据的格式不一样, 且不同的网页的内容出现的也比较随意, 当时也是摸不到头脑.
经过接近半天的 摸索:
首先采集到目标位置的信息;
接着处理采集的信息转化为 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!!!
最终我的问题迎刃而解.