『昊明有态度』哪类人才和技能最受热捧?,Python爬取近10万条程序员招聘数据
文章图片
来源:凹凸数据
本文约5800字 , 建议阅读15分钟
本文带你了解当下企业究竟需要招聘什么样的人才?需要什么样的技能?
文章图片
随着科技的飞速发展 , 数据呈现爆发式的增长 , 任何人都摆脱不了与数据打交道 , 社会对于“数据”方面的人才需求也在不断增大 。 因此了解当下企业究竟需要招聘什么样的人才?需要什么样的技能?不管是对于在校生 , 还是对于求职者来说 , 都显得很有必要 。
本文基于这个问题 , 针对51job招聘网站 , 爬取了全国范围内大数据、数据分析、数据挖掘、机器学习、人工智能等相关岗位的招聘信息 。 分析比较了不同岗位的薪资、学历要求;分析比较了不同区域、行业对相关人才的需求情况;分析比较了不同岗位的知识、技能要求等 。
做完以后的项目效果如下:
文章图片
动态效果如下:
文章图片
信息的爬取(基于51job招聘网站的数据爬取)
爬取岗位:大数据、数据分析、机器学习、人工智能等相关岗位;爬取字段:公司名、岗位名、工作地址、薪资、发布时间、工作描述、公司类型、员工人数、所属行业;说明:基于51job招聘网站 , 我们搜索全国对于“数据”岗位的需求 , 大概有2000页 。 我们爬取的字段 , 既有一级页面的相关信息 , 还有二级页面的部分信息;爬取思路:先针对某一页数据的一级页面做一个解析 , 然后再进行二级页面做一个解析 , 最后再进行翻页操作;使用工具:Python+requests+lxml+pandas+time网站解析方式:Xpath1)导入相关库
importrequestsimportpandasaspdfrompprintimportpprintfromlxmlimportetreeimporttimeimportwarningswarnings.filterwarnings(''ignore'')2)关于翻页的说明
#第一页的特点https://search.51job.com/list/000000,000000,0000,00,9,99,%25E6%2595%25B0%25E6%258D%25AE,2,1.html?#第二页的特点https://search.51job.com/list/000000,000000,0000,00,9,99,%25E6%2595%25B0%25E6%258D%25AE,2,2.html?#第三页的特点https://search.51job.com/list/000000,000000,0000,00,9,99,%25E6%2595%25B0%25E6%258D%25AE,2,3.html?注意:通过对于页面的观察 , 可以看出 , 就一个地方的数字变化了 , 因此只需要做字符串拼接 , 然后循环爬取即可 。
3)完整的爬取代码
importrequestsimportpandasaspdfrompprintimportpprintfromlxmlimportetreeimporttimeimportwarningswarnings.filterwarnings(''ignore'')foriinrange(1,1501):print(''正在爬取第''+str(i)+''页的数据'')url_pre=''https://search.51job.com/list/000000,000000,0000,00,9,99,%25E6%2595%25B0%25E6%258D%25AE,2,''url_end=''.html?''url=url_pre+str(i)+url_endheaders={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/73.0.3683.86Safari/537.36'}web=requests.get(url,headers=headers)web.encoding=''gbk''dom=etree.HTML(web.text)#1、岗位名称job_name=dom.xpath('//div[@class=''dw_table'']/div[@class=''el'']//p/span/a[@target=''_blank'']/@title')#2、公司名称company_name=dom.xpath('//div[@class=''dw_table'']/div[@class=''el'']/span[@class=''t2'']/a[@target=''_blank'']/@title')#3、工作地点address=dom.xpath('//div[@class=''dw_table'']/div[@class=''el'']/span[@class=''t3'']/text()')#4、工资salary_mid=dom.xpath('//div[@class=''dw_table'']/div[@class=''el'']/span[@class=''t4'']')salary=[i.textforiinsalary_mid]#5、发布日期release_time=dom.xpath('//div[@class=''dw_table'']/div[@class=''el'']/span[@class=''t5'']/text()')#6、获取二级网址urldeep_url=dom.xpath('//div[@class=''dw_table'']/div[@class=''el'']//p/span/a[@target=''_blank'']/@href')RandomAll=[]JobDescribe=[]CompanyType=[]CompanySize=[]Industry=[]foriinrange(len(deep_url)):web_test=requests.get(deep_url[i],headers=headers)web_test.encoding=''gbk''dom_test=etree.HTML(web_test.text)#7、爬取经验、学历信息 , 先合在一个字段里面 , 以后再做数据清洗 。 命名为random_allrandom_all=dom_test.xpath('//div[@class=''tHeadertHjob'']//div[@class=''cn'']/p[@class=''msgltype'']/text()')#8、岗位描述性息job_describe=dom_test.xpath('//div[@class=''tBorderTop_box'']//div[@class=''bmsgjob_msginbox'']/p/text()')#9、公司类型company_type=dom_test.xpath('//div[@class=''tCompany_sidebar'']//div[@class=''com_tag'']/p[1]/@title')#10、公司规模(人数)company_size=dom_test.xpath('//div[@class=''tCompany_sidebar'']//div[@class=''com_tag'']/p[2]/@title')#11、所属行业(公司)industry=dom_test.xpath('//div[@class=''tCompany_sidebar'']//div[@class=''com_tag'']/p[3]/@title')#将上述信息保存到各自的列表中RandomAll.append(random_all)JobDescribe.append(job_describe)CompanyType.append(company_type)CompanySize.append(company_size)Industry.append(industry)#为了反爬 , 设置睡眠时间time.sleep(1)#由于我们需要爬取很多页 , 为了防止最后一次性保存所有数据出现的错误 , 因此 , 我们每获取一夜的数据 , 就进行一次数据存取 。 df=pd.DataFrame()df[''岗位名称'']=job_namedf[''公司名称'']=company_namedf[''工作地点'']=addressdf[''工资'']=salarydf[''发布日期'']=release_timedf[''经验、学历'']=RandomAlldf[''公司类型'']=CompanyTypedf[''公司规模'']=CompanySizedf[''所属行业'']=Industrydf[''岗位描述'']=JobDescribe#这里在写出过程中 , 有可能会写入失败 , 为了解决这个问题 , 我们使用异常处理 。 try:df.to_csv(''job_info.csv'',mode=''a+'',header=None,index=None,encoding=''gbk'')except:print(''当页数据写入失败'')time.sleep(1)print(''数据爬取完毕 , 是不是很开心!!!'')这里可以看到 , 我们爬取了1000多页的数据做最终的分析 。 因此每爬取一页的数据 , 做一次数据存储 , 避免最终一次性存储导致失败 。 同时根据自己的测试 , 有一些页数进行数据存储 , 会导致失败 , 为了不影响后面代码的执行 , 我们使用了“try-except”异常处理 。
- 喵喵次元伊朗卫队表明态度,来犯必将击落,美国无人机再遭拦截
- 美国:截至5月10日凌晨6时,特朗普态度变了!美国,最坏的结果来了!
- 『违法』四川法院以零容忍态度查处违纪违法干警150名
- 丁路遥知事表明中方态度,世卫拟派团赴华调查病毒起源?华春莹回应
- 军人驿站国际观察承认精通暗杀和窃听,蓬佩奥对其态度谦卑,普京首次谈特工经历
- 「黄金」美国态度强硬,拒不归还我国600吨黄金,中国打破沉默出手了!
- 龙卷娱表明对蒋凡力挺态度!婚外情算个事吗?,马云无意中一句话
- 态度青岛2020青岛·全球创投风投网络大会莱西推介会举行
- 「美国」美国对华索赔28000亿美元,要求3个月内付清,中方是什么态度?
- 北斗导航▲终于反击!美国撤资400亿也不行,这次我国态度坚决,没有如果