栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

通过猎聘的招聘信息找出学习线路规划

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

通过猎聘的招聘信息找出学习线路规划

文章首发于微信公众号:Python绿洲。如需转载,请联系该公众号

前言

之前发过一篇文章《 Python or Java?Boss直聘告诉你该如何选择》, 主要是这两种语言方向在应聘岗位上的比较,没有涉及具体的岗位要求的分析。前两天,刚好看到网上的一些学习路线图,又对比了招聘网站上的要求,发现这两者其实差不多。

所以就用爬虫爬取了猎聘网上的岗位信息,对这些招聘信息进行处理,从中找出需要掌握的一些语言和工具,从而有目的地进行学习,更快的提高自己的能力,让自己不再因为不知道学习的线路而烦恼,也能够符合招聘的要求。

查看网页



从这个岗位职责中,可以看出需要掌握的工具或语言绝大多数都是以英文为主。所以主要提取英文就行了。至于其他的信息就不进行提取了

流程
  1. 爬取搜索到的岗位链接
  2. 进一步爬取详细的岗位要求
  3. 提取其中英文单词
  4. pyecharts展示

爬取招聘岗位

使用beautifulsoup进行解析,主要将岗位名称,详细链接,公司,薪资,位置和学历要求这几个信息存到MongoDB中就好。

def getlink(seachname, pagenum):
    for i in range(pagenum):
 url = "https://www.liepin.com/zhaopin/?init=-1&key={}&curPage={}".format(
     seachname, i)
 web_data = requests.get(url=url, headers=header)
 soup = BeautifulSoup(web_data.content, 'lxml')
 job_list = soup.select(".sojob-list > li")
 for item in job_list:
     name = item.select(".job-info > h3")[0]['title']
     link = item.select(".job-info > h3 > a")[0]['href']
     company = item.select(".company-name > a")[0].text
     salary = item.select(".text-warning")[0].text
     location = item.select(".area")[0].text
     education = item.select(".edu")[0].text
     data = {
  "title": name,
  "link": link,
  "company": company,
  "salary": salary,
  "location": location,
  "education": education,
     }
     pywork.insert(data) #使用MongoDB存储

详细岗位要求

由于任职要求中有
标签,需要将其切除,而且由于使用beautifulsoup解析,所以
是tag对象,需要创建对象再删除。被这个问题困住了好久。
之后将所有爬取到的岗位要求都写到一个文件中,方便后期使用jieba切分

def getInfo(url, demands_text):
    web_data = requests.get(url, headers=header)
    soup = BeautifulSoup(web_data.content, 'lxml')
    try:
 demands = soup.select(".content-word")[0].contents
 demands = sorted(set(demands), key=demands.index)
 # 删除
delete_str = "
" br_tag = BeautifulSoup(delete_str, "lxml").br demands.remove(br_tag) # 拼接所有要求 for item in demands: demands_text += item.replace("r", "") #写入文件 f = open('demands.txt', mode='a+', encoding='UTF-8') f.write(demands_text + "n") f.close() except: logging.log("warning...")

分词

使用jieba分词之后,还需要将一些单词例如:or,pc等上删除,本着“宁可错杀一千,不可放过一个”的原则,所以将少于1个字母的单词使用正则去掉

def CutWordByJieBa(txt, seachname):
    seg_list = jieba.cut(txt, cut_all=True)
    w1 = "/ ".join(seg_list)  # 全模式
    fil = re.findall('[a-zA-Z]{1,}/', w1) # 提取英文
    strl = ""
    for i in fil:
 strl += i
    strl = strl.lower() # 全部转换为小写

可视化

在这部分,之前只想着将需要掌握的工具用词云进行展示就好。然而,有点幸运呀!当使用Navicat12连接到MongoDB的时候,发现它有自动作图分析的功能。所以先用Navicat中的功能,简单的来看一下总体情况:

以爬虫工程师为关键词查询后,使用pyecharts进行数据展示



重点

个人感觉词云更加准确,不过词云和bar图处理方式都是一样的,只是表现形式不一样而已。从柱状图中可以看出需要掌握的工具可以分为三类:

  1. 数据库:mysql、oracle、mongodb
  2. 解析:xpath、css
  3. 反爬:cookie、ip、scrapy、jwt

其中jwt(JSON Web Token) 我就不认识。所以通过这种方式,我就可以找到自己的盲区,就算不深入了解学习,但是百度一下,大概知道它是什么,还是可以的嘛

最后

如果有感兴趣的小伙伴,可以自己动手试一下。个人感觉这些排名前10的工具对自己的职业规划还是有点帮助的,也希望能够对你有所帮助!

github地址:https://github.com/stormdony/python_demo/tree/master/LiePin

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号