package com._51job.test;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class TestClass {
// word 文件夹
private static String path = "G:\\Desktop\\word";
public static void main(String[] args) throws IOException {
// 计算耗时时间
// 开始时间
long StartTime = new Date().getTime();
// 储存展示信息
TestDemo test = null;
// 读取文件夹
File file = new File(path);
// 读取文件夹中的所有文件
File [] files = file.listFiles();
// 共几份文档
int conut = files.length;
// 解析成功的文件
int conutSuceess = 0;
// 遍历文件
for (File file2 : files) {
test = new TestDemo();
String fileName = file2.getName();
System.out.println("________________File Start: " + fileName + "________________");
System.out.println();
// 拼接文件路径
String filePath = path + "\\" + fileName;
// 判断 文件 / 文件夹
if(file2.isFile()) {
// 通过工具包,获取文件头判断文件类型
String fileType = FileType.getFileType(filePath);
// 51job 简历解析 ##################################################
// 伪word (mht) 格式的解析方式
if(fileName.indexOf("51job") > -1) {
if("mht".equals(fileType)) {
try {
++conutSuceess;
// 根据工具类 将 mht 转 html --> mht2BufferRead.mht2html(filePath)
// 将 html 转 Document
Document doc = Jsoup.parse(mht2html.mht2html(filePath));
// 基本信息 Start ##################################################
Element jbxxDoc = doc.attr("valign","top").selectFirst(".box1");
Elements jbxx = jbxxDoc.select(".infr");
if(jbxx.size() > 0) {
for (Element element : jbxx) {
// 名字
String name = element.text().substring(0,element.text().indexOf("流程状态")).trim().replace(" ", "");
if(name != null || !"".equals(name)) {
test.setJbxx_name(name);
}
// 手机
String phone = element.select("tr:nth-child(1)").get(1).text().trim().replace(" ", "");
if(phone != null || !"".equals(phone)) {
test.setJbxx_phone(phone);
}
// 邮箱
String email = element.select("tr:nth-child(1)").get(2).text().trim().replace(" ", "");
if(email != null || !"".equals(email)) {
test.setJbxx_email(email);
}
// 个人信息第三行的字符串
String value = element.text().substring(element.text().indexOf(email)+email.length(), element.text().length()).trim().replace(" ", "");
if(value != null || !"".equals(value)) {
String [] values = value.split("\\u007C");
if(values != null && values.length > 0) {
// 性别
if(values[0] != null || !"".equals(values[0])) {
test.setJbxx_sex(values[0]);
}
// 年龄 && 出生
if(values[1] != null || !"".equals(values[1])) {
String age_born = values[1];
if(age_born.indexOf("岁") > -1) {
test.setJbxx_age(age_born.substring(0, age_born.indexOf("岁")));
}
if(age_born.indexOf("(") > -1 && age_born.indexOf(")") > -1) {
test.setJbxx_born(age_born.substring(age_born.indexOf("(")+1,age_born.indexOf(")")));
}
}
// 现居住
String addrNow = values[2].substring(3, values[2].length());
if(addrNow != null || !"".equals(addrNow)) {
test.setJbxx_addrNow(addrNow);
}
// 工作时间
if(values[3] != null || "".equals(values[3])) {
test.setJbxx_workExp(values[3]);
}
}
}
}
}
// 基本信息 End ##################################################
// 寻找 51job 整快动态加载的 table
Element table = doc.selectFirst("#divInfo");
Element tables = table.selectFirst("table");
// 寻找 51job 动态加载的标题,从而判断 进入某个特定的解析方法
Elements titles = table.select(".plate1");
int index = 0;
if(tables.text() == null || "".equals(tables.text())) {
index = 1;
}
for (Element title : titles) {
++index;
// 求职意向 Start ##################################################
if(title.text().indexOf("求职意向") > -1) {
//System.err.println("求职意向 : " + index);
Element qzyxElement = table.select(".box:nth-child(" + index + ")").select(".tba").first();
if(qzyxElement != null && !"".equals(qzyxElement)) {
Elements qzyx = qzyxElement.select("table tbody tr td table tbody tr");
if(qzyx != null && qzyx.size() > 0) {
for (Element element : qzyx) {
if(element.text().indexOf("期望薪资:") > -1) {
String [] value2 = element.text().split(":");
if(value2 != null || value2.length >= 1) {
if(value2[1].trim().replace(" ", "") != null && !"".equals(value2[1].trim().replace(" ", ""))) {
test.setQzyx_qwxz(value2[1].trim().replace(" ", ""));
}
}
}
if(element.text().indexOf("地点:") > -1) {
String [] value2 = element.text().split(":");
if(value2 != null && value2.length >=1) {
if(value2[1].trim().replace(" ", "") != null && !"".equals(value2[1].trim().replace(" ", ""))) {
test.setQzyx_qwdd(value2[1].trim().replace(" ", ""));
}
}
}
if(element.text().indexOf("职能/职位:") > -1 || element.text().indexOf("职能:") > -1
|| element.text().indexOf("职位:") > -1) {
String [] value = element.text().split(":");
if(value != null && value.length >= 1) {
String value2 = value[1].trim().replace(" ", ",").replace(" ", ",").replace(" ", ",");
if(value2 != null && !"".equals(value2)) {
test.setQzyx_znzw(value2);
}
}
}
if(element.text().indexOf("行业:") > -1) {
String hy = element.text().substring(element.text().indexOf(":") + 1, element.text().length());
if(hy != null || !"".equals(hy)) {
test.setQzyx_hy(hy);
}
}
if(element.text().indexOf("关键字:") > -1) {
String [] value2 = element.text().split(":");
if(value2 != null && value2.length >= 1) {
String gjz = value2[1].trim().replace(" ", ",").replace(" ", "");
if(gjz != null || !"".equals(gjz)) {
test.setQzyx_gjz(gjz);
}
}
}
if(element.text().indexOf("自我评价:") > -1) {
String value = element.text().substring(element.text().indexOf(":") + 1, element.text().length());
if(value != null || !"".equals(value)) {
test.setQzyx_zwpj(value);
}
}
if(element.text().indexOf("到岗时间:") > -1) {
String value = element.text().substring(element.text().indexOf(":") + 1, element.text().length());
if(value != null || !"".equals(value)) {
test.setQzyx_dgsj(value);
}
}
if(element.text().indexOf("工作类型:") > -1) {
String value = element.text().substring(element.text().indexOf(":") + 1, element.text().length());
没有合适的资源?快使用搜索试试~ 我知道了~
51job 简历解析工具
共27个文件
class:9个
java:9个
jar:6个
需积分: 5 28 下载量 15 浏览量
2018-06-18
13:06:58
上传
评论 1
收藏 1.66MB RAR 举报
温馨提示
此文件适用于 51job 网下载的简历,将简历所需要的信息解析后封装成对象,可方便储存到数据库中。(所使用技术 - Jsoup)
资源推荐
资源详情
资源评论
收起资源包目录
51jobPars.rar (27个子文件)
51jobPars
.project 385B
src
lib
javax-mail-1.3.jar 298KB
htmlparser-1.5.jar 230KB
jsoup-1.11.3.jar 386KB
com
_51job
test
mht2html.java 3KB
TestDemo003.java 1KB
TestClass.java 22KB
FileType.java 7KB
TestDemo.java 4KB
TestDemo002.java 1KB
TestDemo004.java 859B
TestDemo005.java 410B
TestDemo006.java 383B
.settings
org.eclipse.jdt.core.prefs 598B
.classpath 494B
bin
lib
javax-mail-1.3.jar 298KB
htmlparser-1.5.jar 230KB
jsoup-1.11.3.jar 386KB
com
_51job
test
TestDemo004.class 1KB
mht2html.class 5KB
FileType.class 5KB
TestDemo005.class 731B
TestDemo002.class 2KB
TestDemo003.class 1KB
TestDemo006.class 722B
TestClass.class 17KB
TestDemo.class 5KB
共 27 条
- 1
资源评论
-陈小鱼
- 粉丝: 185
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- OTN光传输网络OTU、OPU、ODU、PM、SM、TCM各种开销图
- STM32计数器PCB 1602 2个传感器.PcbDoc
- WOA-HKELM鲸鱼算法优化混合核极限学习机多变量回归预测(Matlab完整源码和数据)
- Screenshot_2024-05-14-22-47-39-925_com.alibaba.android.rimet.hznu.jpg
- openssl-3.1.5.tar.gz
- 区块链操作视频2022.5.16.zip
- RPM打包视频教程命令
- 指南针罗盘PSD图设计图
- eeprom-A7.zip
- Python毕业设计-基于深度学习LSTM的情感分析京东商城数据(源码+文档).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功