北京招聘市场对架构师职位的技能要求-统计过程

2021.05.04
用猎聘网的职位数据统计了下“架构师”这一职位的技能要求,以便有的放矢得准备。
用到工具:shell命令、python词云工具。
过程简述如下:

  1. 访问猎聘网搜索“架构师”,城市选择“北京”。
  2. 拷贝访问的url,用curl命令查询前十页,并保存,示例:
curl -o p2.html -b c1.txt https://www.liepin.com/zhaopin/\?industries\=\&subIndustry\=\&dqs\=010\&salary\=40%2470\&jobKind\=\&pubTime\=\&compkind\=\&compscale\=\&searchType\=1\&isAnalysis\=\&sortFlag\=15\&d_headId\=60f3a84dbbe15129261a499407525893\&d_ckId\=60f3a84dbbe15129261a499407525893\&d_sfrom\=search_prime\&d_curPage\=0\&d_pageSize\=40\&siTag\=zot2zXE3mIYq_uF1ofAiig%7Eckeqc2v6cyjIpiFd1ebiLg\&key\=%E6%9E%B6%E6%9E%84%E5%B8%88\&curPage\=1

上述命令查询第一页,并保存为p2.html,其他页修改最后的curPage即可。

  1. 从列表页的html中查到每个职位的url,示例:
grep 'https://www.liepin.com/job/' p2.html > d2
  1. d2中的数据类似:
                                                <a href="https://www.liepin.com/job/1923776887.shtml" data-promid="imscid=R000000075&siTag=RkdwXGWlO3dWhkSuLDDI2A%7Eckeqc2v6cyjIpiFd1ebiLg&d_sfrom=search_prime&d_ckId=498ab9eedd402a04646105aa394b5795&d_curPage=1&d_pageSize=40&d_headId=498ab9eedd402a04646105aa394b5795&d_posi=49" target="_blank"
                                                <a href="https://www.liepin.com/job/1923217241.shtml" data-promid="imscid=R000000075&siTag=RkdwXGWlO3dWhkSuLDDI2A%7Eckeqc2v6cyjIpiFd1ebiLg&d_sfrom=search_prime&d_ckId=498ab9eedd402a04646105aa394b5795&d_curPage=1&d_pageSize=40&d_headId=498ab9eedd402a04646105aa394b5795&d_posi=50" target="_blank"
                                                <a href="https://www.liepin.com/job/1920276417.shtml" data-promid="imscid=R000000075&siTag=RkdwXGWlO3dWhkSuLDDI2A%7Eckeqc2v6cyjIpiFd1ebiLg&d_sfrom=search_prime&d_ckId=498ab9eedd402a04646105aa394b5795&d_curPage=1&d_pageSize=40&d_headId=498ab9eedd402a04646105aa394b5795&d_posi=51" target="_blank"
                                                <a href="https://www.liepin.com/job/1919123815.shtml" data-promid="imscid=R000000075&siTag=RkdwXGWlO3dWhkSuLDDI2A%7Eckeqc2v6cyjIpiFd1ebiLg&d_sfrom=search_prime&d_ckId=498ab9eedd402a04646105aa394b5795&d_curPage=1&d_pageSize=40&d_headId=498ab9eedd402a04646105aa394b5795&d_posi=52" target="_blank"
  1. 截取、提纯数据
cat d2 | awk '{print $2}' | awk -F\" '{print $2}' >> out.2

得到文本文件,每行是一个职位信息的url。

有些url是相对路径,需要自行拼接前缀,操作方式如下:

cat d$i | awk '{print $2}' | awk -F\" '{pre="https://www.liepin.com"; printf pre;print $2}' > out.$I

上述命令为脚本中的循环。

  1. 至此得到很多职位详细页面的url。
  2. 用curl命令下载这些页面
    指定user-agent和referer,依次下载上述url的html页面。
    形如:
      curl --referer "https://www.liepin.com/zhaopin/" --user-agent "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36" -o data/$file $j
      sleep $(($RANDOM%10))

需要随机sleep一会儿,否则容易被判定成机器人抓取页面,被屏蔽掉。

  1. 从详细信息页面中找到需要的部分,这里关注的是职业技能,查看html代码发现对应content-word关键字,提取如下:
grep -A 1 'content content-word' ./data/$i | grep -E '技术|经验|architectural'  > ./req/$I

一开始没仔细分析结构,按内容提取的:

grep -E '>要求|任职要求|岗位要求|职位要求|工作要求' ./data/$i | awk -F "要求" '{printf $2}' | awk -F "span" '{printf $1}' > ./req/$I

总有些不规范的,手动检查一下空文件或过小的文件,修改提取方式即可。

  1. 此时职位的技能要求都放到req目录下了,将内容合并:
cat req/* > result
  1. 使用词云工具做分词、词频统计,生成图片云。
    用了之前网上找到的一个word cloud工具,略作修改,添加要屏蔽的词,调整top词数量,最终统计出top 400(😄top10的词太抽象,扩到400了),词如下:
    [('开发', 400), ('架构', 393), ('设计', 342), ('数据', 335), ('系统', 292), ('产品', 273), ('项目', 251), ('业务', 239), ('团队', 235), ('云', 218), ('架构设计', 205), ('应用', 205), ('框架', 199), ('沟通', 192), ('平台', 179), ('服务', 174), ('客户', 171), ('大', 160), ('行业', 159), ('需求', 142), ('负责', 136), ('数据库', 134), ('领域', 133), ('使用', 131), ('高', 130), ('学习', 130), ('分布式', 128), ('专业', 127), ('优化', 126), ('分析', 126), ('主流', 120), ('管理', 119), ('互联网', 117), ('研发', 117), ('Java', 117), ('本科', 116), ('计算', 111), ('解决方案', 110), ('大型', 109), ('规划', 105), ('计算机', 100), ('方案', 94), ('深入', 85), ('落地', 83), ('公司', 83), ('掌握', 81), ('编程', 80), ('运维', 80), ('代码', 79), ('新', 79), ('基础', 78), ('原理', 75), ('实施', 75), ('语言', 73), ('参与', 72), ('丰富', 72), ('问题', 72), ('扎实', 71), ('以及', 70), ('微', 69), ('网络', 67), ('精神', 67), ('场景', 67), ('合作', 66), ('流程', 66), ('独立', 65), ('熟练掌握', 65), ('Spring', 64), ('过', 64), ('开源', 64), ('并发', 63), ('算法', 62), ('编写', 62), ('交付', 61), ('协作', 60), ('完成', 60), ('解决', 60), ('性能', 60), ('工具', 60), ('知识', 57), ('建设', 57), ('软件', 57), ('较强', 56), ('体系', 55), ('企业', 55), ('常用', 54), ('包括', 53), ('核心', 53), ('测试', 53), ('l', 53), ('安全', 53), ('计算机相关', 52), ('可用', 52), ('实际', 51), ('实现', 51), ('设计模式', 51), ('Redis', 51), ('善于', 50), ('方向', 50), ('发展', 49), ('持续', 49), ('Hadoop', 49), ('文档', 49), ('Linux', 48), ('方法', 47), ('调优', 46), ('责任心', 46), ('分布式系统', 45), ('虚拟化', 45), ('背景', 45), ('SQL', 45), ('政府', 45), ('提供', 45), ('IT', 44), ('清晰', 44), ('模型', 43), ('Spark', 43), ('.', 43), ('实践经验', 41), ('组件', 41), ('容器', 41), ('存储', 41), ('数据结构', 40), ('9', 40), ('Python', 40), ('考虑', 40), ('统招', 39), ('中间件', 39), ('部署', 39), ('基于', 39), ('任职', 39), ('缓存', 38), ('意识', 38), ('可', 38), ('提升', 38), ('整体', 37), ('好', 37), ('MySQL', 36), ('建模', 36), ('用户', 36), ('常见', 36), ('方面', 35), ('深度', 35), ('研究', 35), ('自动化', 35), ('软件工程', 35), ('解决问题', 35), ('表达能力', 35), ('各类', 35), ('结合', 34), ('高性能', 34), ('10', 33), ('质量', 33), ('处理', 33), ('资格', 33), ('认证', 33), ('供应链', 33), ('专业本科', 32), ('要求', 32), ('智慧', 32), ('咨询', 32), ('数据仓库', 32), ('支持', 32), ('智能', 32), ('架构师', 31), ('工程', 31), ('集成', 31), ('协调', 31), ('快速', 31), ('型', 31), ('机制', 30), ('根据', 30), ('编码', 30), ('组织', 30), ('C++', 30), ('关系', 30), ('配置', 30), ('in', 30), ('to', 30), ('前端', 29), ('业界', 29), ('规范', 29), ('关键', 29), ('抗压', 29), ('岗位职责', 29), ('消息', 28), ('理论', 28), ('治理', 28), ('模式', 28), ('机器', 28), ('监控', 28), ('指导', 28), ('DevOps', 28), ('the', 28), ('多线程', 27), ('推动', 27), ('Kafka', 27), ('联网', 27), ('目标', 27), ('Docker', 27), ('MongoDB', 27), ('java', 26), ('主导', 26), ('到', 26), ('复杂', 26), ('金融', 26), ('逻辑', 26), ('链', 26), ('岗位', 26), ('端', 25), ('操作系统', 25), ('经历', 25), ('过程', 25), ('数字化', 25), ('出差', 25), ('Oracle', 25), ('售前', 25), ('Hive', 25), ('创新', 25), ('各种', 24), ('软件架构', 24), ('C', 24), ('工业', 24), ('Kubernetes', 24), ('构建', 23), ('类', 23), ('逻辑思维', 23), ('压力', 23), ('调研', 23), ('完整', 23), ('运营', 23), ('热情', 22), ('大规模', 22), ('从', 22), ('选型', 22), ('思考', 22), ('制定', 22), ('环境', 22), ('思维', 22), ('JVM', 22), ('物', 22), ('深刻理解', 22), ('其', 22), ('其中', 22), ('信息化', 22), ('其他', 22), ('区块', 22), ('实战经验', 22), ('负载', 22), ('典型', 22), ('强烈', 21), ('标准', 21), ('成功', 21), ('数据处理', 21), ('思想', 21), ('模块', 21), ('项目管理', 21), ('挑战', 21), ('职责', 21), ('Cloud', 21), ('挖掘', 21), ('有效', 20), ('编程语言', 20), ('驱动', 20), ('稳定性', 20), ('服务器', 20), ('表达', 20), ('深刻', 20), ('协同', 20), ('design', 20), ('公有', 19), ('理念', 19), ('基本', 19), ('内部', 19), ('上', 19), ('物流', 19), ('软件开发', 19), ('迭代', 19), ('Dubbo', 19), ('市场', 19), ('之一', 19), ('技巧', 19), ('development', 19), ('\', 19), ('自我', 18), ('多个', 18), ('多', 18), ('承担', 18), ('适应', 18), ('方法论', 18), ('以', 18), ('从业', 18), ('通过', 18), ('AI', 18), ('各', 18), ('a', 18), ('知名', 17), ('方案设计', 17), ('合理', 17), ('海量', 17), ('带领', 17), ('输出', 17), ('社区', 17), ('拥有', 17), ('城市', 17), ('维护', 17), ('队列', 17), ('高度', 17), ('有过', 17), ('接受', 17), ('决策', 17), ('提出', 17), ('功底', 17), ('执行力', 17), ('推进', 17), ('基础设施', 17), ('阿里', 17), ('一起', 17), ('of', 17), ('on', 17), ('mysql', 17), ('均衡', 17), ('JAVA', 16), ('例如', 16), ('全面', 16), ('效率', 16), ('汽车', 16), ('政务', 16), ('NoSQL', 16), ('Go', 16), ('引擎', 16), ('生产', 16), ('协助', 16), ('痛点', 16), ('前瞻性', 16), ('功能', 16), ('搭建', 16), ('集群', 16), ('·', 16), ('生态', 16), ('承受', 16), ('限于', 16), ('HBase', 16), ('战略', 16), ('美团', 16), ('部门', 16), ('数据分析', 16), ('敏捷', 16), ('可以', 15), ('硕士', 15), ('智能网', 15), ('支撑', 15), ('可视化', 15), ('地', 15), ('改进', 15), ('迁移', 15), ('电子', 15), ('实践', 15), ('级', 15), ('价值', 15), ('SpringCloud', 15), ('交流', 15), ('你', 15), ('AWS', 15), ('电商', 15), ('technical', 15), ('Openstack', 15), ('描述', 15), ('技能', 14), ('Mysql', 14), ('积极主动', 14), ('定位', 14), ('探索', 14), ('总结', 14), ('计划', 14), ('实时', 14), ('特点', 14), ('OpenStack', 14), ('个', 14), ('毕业', 14), ('\u3000', 14), ('引导', 14), ('ETL', 14), ('SpringBoot', 14), ('加', 13), ('消息中间件', 13), ('很', 13), ('主要', 13), ('移动', 13), ('基础知识', 13), ('Web', 13), ('面向对象', 13), ('原生', 13), ('联', 13), ('评估', 13), ('计算技术', 13), ('PaaS', 13), ('全日制', 13), ('确保', 13), ('发展趋势', 13)]。

图片如下:


wordcloud.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,142评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,298评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,068评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,081评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,099评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,071评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,990评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,832评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,274评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,488评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,649评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,378评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,979评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,625评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,643评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,545评论 2 352