伪求职分析(python 爬虫 数据分析 分词)
2017/7/22
前言
这是我在简书上面的第一篇文字。可能文字排版,组织上有所欠缺,有问题大家就留言给我,我会尽量改进。
文章中心(要干什么)
利用python进行简单的分析一下数据类目的求职的一些信息,而这篇文章会详细告诉大家每一个环节我是如何进行的,请大家提出更好的方法以改进。比如通过简单的抓取数据,人力求职条目清洗后统计(我用的是手动清洗标记,低门槛做法,后期可能会推出聚类或者利用条目相识度等等方法做这个求职条目分类。或者大神教我其他更好方法,求大神。)。
我要做的事情
1爬取某个网站下的数据关键字的职位。
2统计数据关键字下的工作岗位(如图,时间,精力等问题只统计了430条,而430条中有60条被丢弃)。
数据方向的职位分布ps:丢掉60是为了简化工作量,看下图你就明白(没有丢掉那60条)。
数据方向的职位分布(屎一样的全体数据)3统计数据方向的所用的技术热点(结巴分词+统计实现)
技术需求4针对某个具体方向如数据分析,分析出求职者需具备的技术需求。
总路线已经写出来(不知道大家知道我要干什么没有?可能写的没有逻辑 )
第一步 数据入口获取及爬取
拉钩,就是你了,别走。用电脑端网页抓取,这里有2个坑。坑1:需要处理cookice里面的Hm_lpvt**(类似于时间戳),为了能够愉快的用每次+1或者+2处理吧(嗯,就是这么粗暴。)实在不会的同学我测试过8-25秒访问一次,不用cookice一般不会ban(是一般,要出现302跳转验证还是会出现的)。坑2:爬虫最怕的垃圾网络(之前没用过seleium抓取,这次发现seleium下这个问题比scrapy更常遇见。)
(为什么不用scrapy,为了锻炼一下seleium,scrapy可以一步到位(直接抓条目,然后进入单个条目抓职位要求等。不过需要处理好cookie,看别人用的是手机端抓取。电脑端估计有其他坑)
环境需要如下(firefox ,seleium for python,seleium for firefox ,mysql.唯一给不出的就是mysql建库。。。打我呀。。。我没保存上。。。)
库大概是这样子的 job_urls 为主键,表名字为lagou,限制什么的,自己弄代码
https://github.com/Whojohn/job_analysis(get_job_require)
运行完后是这样子滴的
乱乱的条目是无法统计滴+@+现在你需要干的就是清洗数据(条目分类),为了避免清洗出问题(逻辑覆盖,打错什么的),先copy一张表 得出lagou_copy
然后sql里面运行一下sql_wash(黏贴过去)
初步处理好,不过效果很不理想效果是不是很不理想呢?所以开篇就说后序可能,可能,可能会推出结巴分词+聚类,或者词条相似度进行归类版本,技术没选好(%>_<%没经验,无监督指导训练下的,野生的分析狮)。(这种清洗方法也丢掉大量信息,细粒度不够,显示肯定要被枪毙800次。)
第二步
运行一下job_require.py(统计出数据条目下的职位分布)
职位分布第三步
运行DownloadRequire(获取条目详细信息,需求等)
第四部
运行job_require_detail(技术需求分析,总览,详细的可以保存jieba运行结果,数据库分组后再统计)
这里没有多进程so分词很慢,后序可能,可能也会出多进程版本解决这个问题。还有有的职位描述是英文写的,我是通过统计Eng来统计技术需求(为了简单,为了简单,或者谁可以提供我一个包含中英文技术的字典。普通字典解决这个问题比较无解。返回英文书写问题上,为了更好的解决英文问题,这里可以通过一个变量记录一下英文描述的条数,统计时候>这个数目就能解决。不过,终极解决方法就是找个技术字典,包含中英文的那种。)
为什么后面越写,越水,我脖子累了。。。以后再填坑吧。写了1多小时,人家是脑残,我是文残。。。╮(╯▽╰)╭