简单的招聘信息图表分析
准备年后出门找工作,上招聘网站浏览了一下,发现浏览招聘信息很难得到我想要的信息,于是就有了这个项目。
需求
三年时间自己创业,基本是要用什么就学,导致现在个人的技术栈十分的杂乱,所以我想要知道不同职位(当前)的就业情况和薪资水平。
其次,具体要去哪个城市也还没有确定,所以想知道城市之间相同职位的薪资水平。
最后是对于招聘信息要求技术栈的分析,希望通过分析企业的招聘信息的具体信息,提取关键字,分析出职业相关技术的热度。
使用技术
也算是抱着学习新技能的心态去写的,所以大部分都是本人最近没有使用过的技术或没有学习过的技术:
- 后端 koa(一直在使用 express,egg 也使用过,koa 居然直接跳过了,补一波)
- 数据库本来是使用 mongodb 的,但是发现其实没有必要使用数据库。
- 模板引擎 arttemplate
- 前端就直接导入 Boostrap 和 jQuery,这个是真的好久不见了,使用惯了 MVVM 框架,再写 jQuery,忆苦思甜啊!
- 分词 jieba,这个最后还是出了点问题,导致第三个需求没法完成了。
- 还有简单的 node 爬虫,就是用 superagent+cheerio 实现了。
- 图表 highchart
实践过程
step.1 爬取数据
确定需要的信息为:职位名称、职位月薪、工作地点、详情链接,f12 查看页面结构,读取页面后使用 cheerio 获取需要的信息。代码在 getData.js 中,具体可以参考10 分钟教你撸一个 nodejs 爬虫系统。
step.2 处理数据
分析薪资结构,我直接以 1 万与 1.5 万划分为上中下三部分,对于获取的数据做简单的判断统计,就可以了。展示形式为饼图。
step.3 数据对比
可以同时获取不同的职位或不同城市的信息,并列显示,不过以饼图显示,可以看出薪资分布情况但是要比较数量就很不直观了。所以将已查询到的职位信息数量放到同一张条形图中,进行对比。
step.4 关键词技术名词分析(未完成)
原本的思路是使用结巴分词,获取关键词,结果发现招聘详情的关键词是‘js’‘前端’‘服务端’,具体的技术名词多只出现一次,是自己想法上出现偏差,把自己关注的词当做是文本的关键词了。现在应该先分析出那些是技术名词,然后作为字典去分析权重。如何分析技术名词这个没有思路,最直接的方法应该是直接 Google 得到相应的字典,但是没有找到,这个功能就暂时放弃了,等有了好的方法再完成。
更多思考
- 关于数据库:现在每次使用查询都是先去爬取网页,这个的好处是每次都能获取到最新的数据,但是每次都耗费了相对的时间,理想的情况应该是每次查询时,查询预先获取的数据,这样查询就不会出现时间过长的问题,而服务器每隔一段时间爬取最新的数据,并且删除之前的数据;不过这样就不太可能不限制查询的职业与城市,数据太多但是服务器的流量有限,这个功能需要考虑。
- 关于不同招聘网站:不同招聘网站的页面结构可能都不一样,所以如果要爬取不同网站的信息只能一个个去设置,但是更困难的问题是去判断不同网站相同公司相同职业的重复问题,假设相同公司的相同职业,公司名相同,职业名相同,这就比较好处理。不过实际生活中公司应该都会不同网站同时招聘,所以查询一个招聘网站就应该足够了。
- 关于技术名词:暂时不知道是否可行,需要更多的思考和资料。
其他
github:https://github.com/x007xyz/jobs
服务器:http://95.163.201.100:3000
[图片上传失败...(image-c6fb11-1518845832562)]