开发一个招聘类的项目,网站需要行业数据
目标:将行业数据填充进数据库
过程分为两步:1:获取数据 2:解析数据放入数据库
1.获取数据
进入boos直聘网站首页
红框框住的就是我们要获取的行业数据了 接下来打开 F12 -> 网络 找到文件名为position.json的请求 ->点击响应
顺利找到数据也拿到了数据结构
接下来打开消息头 访问该网址可以直接拿到json字符串
2.解析数据
我使用 jackson 解析该json字符串
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.1</version>
</dependency>
在后台建造与json结构相似的数据结构
第一层为返回值与返回状态的类
/**
* 创建返回参数的实体类
*/
public class Result {
private String code;
private String message;
private List<Industry> zpData;
//要加上get、set方法
}
接下来是返回数据的类
public class Industry {
private int code;
private String name;
private String tip;
private String firstChar;
private String pinyin;
private String rank;
private List<Industry> subLevelModelList;
//要加上get、set方法
}
接下来是带有main方法的执行类
public class main {
public static void main(String[] args) throws JsonParseException, JsonMappingException, IOException {
String json = getstr();
ObjectMapper mapper = new ObjectMapper();
Result result = mapper.readValue(json, Result.class);
//第一级行业
for(Result res : result.getZpData()) {
System.out.println("第一级:"+res.getName());
}
//第二级行业
for(Result res : result.getZpData()) {
System.out.println("第一级"+res.getName());
for(Result re : res.getSubLevelModelList()) {
System.out.println("第二级"+re.getName());
}
}
//第三级行业
for(Result res : result.getZpData()) {
System.out.println("第一级"+res.getName());
for(Result re : res.getSubLevelModelList()) {
System.out.println("第二级"+re.getName());
for(Result r : re.getSubLevelModelList()) {
System.out.println("第三级"+r.getName());
}
}
}
}
//boos直聘行业数据 获取数据的网址:https://www.zhipin.com/wapi/zpCommon/data/position.json
public static String getstr() {
return json字符串;
}
}
最后运行main方法:
解析完成 接下来就是按照自己的数据库结构插入数据了