将爬取的实习僧网站数据传入HDFS
一、引言:
作为一名大三的学生,找实习对于我们而言是迫在眉睫的。实习作为迈入工作的第一步,它的重要性不言而喻,一份好的实习很大程度上决定了我们以后的职业规划。
那么,一份好的实习应该考量哪些因素呢?对于我们计算机专业的学生而言现在的实习趋势是什么呢?
我从实习僧网站爬取了5000条全国互联网行业的职位信息(时间节点06/17),下面开始从职位、薪资、地点、时长、工作要求五个维度进行分析。
二、数据提取与分析
- 爬取的页面
软件类实习中的实习月份需求、实习天数需求、实习岗位、公司名称、薪资范围 和 职业描述(这个需要在 点击实习名称 后 的页面中实现)
- 数据获取工具
主要工具:Python 3.6、Excel2016
涉及爬虫库:requests、Beautiful Soup
涉及反爬虫库:fontTools.ttLib
涉及可视化库:matplotlib、wordcloud、pyecharts
- 使用反爬虫手段对解析页面的数据进行清洗
爬虫是一段自动获取网站数据的程序,一些网站为了保护数据或者避免爬虫过多对服务器造成太大压力就使用了反爬虫技术,在我们所获取信息的实习僧网站就用了反爬虫技术。
由此我们的爬取需要解析完他们某个时间段内的反爬虫代码之后,在一次性、有限内爬完不然将会在爬到一半的时候无法解析实习僧网站的反爬虫代码,爬出来的数据将会是空。
- 部分代码
通过选取实习僧网页中的数字,在中文转换网站转换编码后,得出下面数字的编码。
# 数字解析
replace_dict = {
'\ueae5': '',
'\ueff5': '',
'\uf17d': '',
'\ue5f2': '',
'\uf5ce': '',
'\uf5e8': '',
'\uef8f': '',
'\ue64a': '',
'\ued3c': '',
'\uf775': '',
}
def get_pageInfo(urlList,replace_dict):
'''
解析request获取的信息
:param urlList: 保存url
:param replace_dict: 数字解析
:return: 无
'''
info={}
for url in urlList:
response=requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser', from_encoding="utf-8")
text = soup.prettify()
for key, value in replace_dict.items():
text = text.replace(key, value)
soup = BeautifulSoup(text, 'html.parser') jobName=soup.select('.new_job_name')[0].text.strip()
jobMoney=soup.select('.job_money')[0].text.strip()
jobPosition=soup.select('.job_position')[0].text.strip()
jobAcademic=soup.select('.job_academic')[0].text.strip()
jobWeek=soup.select('.job_week')[0].text.strip()
jobTime=soup.select('.job_time')[0].text.strip()
jobDetail=soup.select('.job_detail')[0].text.replace(' ','').replace('\n','')
comName=soup.select('.com-name')[0].text.strip()
info['jobName']=jobName
info['jobMoney']=jobMoney
info['jobPosition']=jobPosition
info['jobAcademic']=jobAcademic
info['jobWeek']=jobWeek
info['jobTime']=jobTime
info['jobDetail']=jobDetail
info['comName']=comName save_item(info)
- 爬取结果展示
- 词云分析
这次爬取的信息一共5000条,除去无用信息一共有4700+数据,可以看到所有岗位中最热门的当属软件测试,可以说软件工程和运营类的同学相对来说最容易找到实习。
紧随其后的则是前端,java,数据分析之类。
一.将爬虫大作业产生的csv文件上传到HDFS
二.对CSV文件进行预处理生成无标题文本文件
三.把hdfs中的文本文件最终导入到数据仓库Hive中
启动数据库后开启hive —> 查看数据库是否传入—>在数据仓库中建表
service mysql start #启动mysql数据库
四.在Hive中查看并分析数据
查看全部信息验证是否上传成功:1 select * from yh.data limit 20(前20条)
2:查看在HIVE中csv文档的工作名称前200条内容。
五.用Hive对爬虫大作业产生的进行数据分析,写一篇博客描述你的分析过程和分析结果。(10条以上的查询分析)
1.查看发布招工数量最多的城市。最终结论:北上广深还是名列前四,经济越发达的地区招实习生的数量也是比较多的,其中北京和上海的招实习生数量更是广州和深圳的2-3倍之多。
接着就是杭州、成都、南京等二线城市。
2.通过数量多少排序,将每个招聘的名称进行统计,最后得出测试实习生是招实习生最多包括软件测试实习生在内的一个职业有198个,再是前端开发和java开发都在70个左右。
由此可见,现阶段关于软件相关职业而言,测试岗位还是比较缺人的。
3.将实习周期进行统计排名得出,一般单位会要求你实习4个月,再而是7个月,经过调查了解7个月的一般都是签订了三方协议,以保障公司和实习生的利益。
4.经过对学历要求的统计,目前来讲,本科的要求是比较多的有3561超过统计总数的五分之三。第二个是不限学历,第三个是硕士生再后就是大专。由此可见对于当代的就职而言,相较于本科生和大专生,本科生的择业选择多于大专生。
5.将本科生的薪资统计和排名得出,对于本科类学业的学生而言,工资一般是100-200这个区间所占的比例比较大。
6.将专科的工资进行排名和统计得出,对于专科毕业的学生而言,一般也是100-150,。从数据上看相比较于本科生而言,专科生的平均实习工资会比本科生少80左右。
7.这个是对硕士生的薪资的排名,结果是150-200的居多,100-150的排名第三,所以三个数据一起看我们也可以得出结论,学历越高找到高薪资的可能性会更大。
8.对所发布应聘的公司进行统计,发布兼职数目最多的是CVPR,ECCV这些企业,然后是亚信科技 和 字节跳动(抖音)而且他们基本是在北京。
9.对所有城市的工资做一个统计。一般是11-150的居多,其次是150-200的。所有如果以后找实习,工资找到100-200的算是差不多的了。
10对广州的薪资情况进行分析,大部分的工资是100-150,少数为50-100及面议。如果有想从事软件方面的小伙伴考虑以后可能在广州工作的话可以参考100-150这个薪资区间。
11.这个是对深圳的薪资分析,相比于广州,深圳的工资100-150和150-200所占的比例相差不大。如果有软件专业的同学对于以后工作的地点是在广州还是深圳之间有所犹豫的话,这个结论也是可以当做参考的。
总结~~
对于想软件方面职业的朋友而言,学历越高的朋友找工作的薪资会更高一点,在北上广深这些经济发达的地方找工作会比二三线城市方便 找到工作且薪资普遍会比较高一些。一般北京的公司规模会大一些,需要招收的实习生也是比较多的。在现阶段,本科生是大部分公司的招人方向。硕士生的薪资一般是150-250,本科学生的薪资一般是100-200居多,专科生普遍50-150。工作时长一般是要求实习4个月,其次是7个月。
测试实习生是招实习生最多包括软件测试实习生在内的一个职业有198个,再是前端开发和java开发都在70个左右。现阶段关于软件相关职业而言,测试岗位还是比较缺人的。
将爬取的实习僧网站数据传入HDFS的更多相关文章
- Java裸写爬虫技术,运用多线程技术,高效爬取某个医疗机构网站数据
最近喜欢上了数据的庞大的感觉,就爬取了一下某个医疗机构网站医疗数据,由于数据量庞大,只爬取了江西省的各个市的各个医院的各个科室的各个科室.中各种信息.其中用的持久层技术是hibernate框架,和用到 ...
- python爬取安居客二手房网站数据(转)
之前没课的时候写过安居客的爬虫,但那也是小打小闹,那这次呢, 还是小打小闹 哈哈,现在开始正式进行爬虫书写 首先,需要分析一下要爬取的网站的结构: 作为一名河南的学生,那就看看郑州的二手房信息吧! 在 ...
- 吴裕雄--天生自然PYTHON爬虫:使用Selenium爬取大型电商网站数据
用python爬取动态网页时,普通的requests,urllib2无法实现.例如有些网站点击下一页时,会加载新的内容,但是网页的URL却没有改变(没有传入页码相关的参数),requests.urll ...
- 爬虫(二)Python网络爬虫相关基础概念、爬取get请求的页面数据
什么是爬虫 爬虫就是通过编写程序模拟浏览器上网,然后让其去互联网上抓取数据的过程. 哪些语言可以实现爬虫 1.php:可以实现爬虫.php被号称是全世界最优美的语言(当然是其自己号称的,就是王婆 ...
- 用scrapy爬取亚马逊网站项目
这次爬取亚马逊网站,用到了scrapy,代理池,和中间件: spiders里面: # -*- coding: utf-8 -*- import scrapy from scrapy.http.requ ...
- Python网络爬虫第三弹《爬取get请求的页面数据》
一.urllib库 urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urllib. ...
- 爬取实时变化的 WebSocket 数据(转载)
本文转自:https://mp.weixin.qq.com/s/fuS3uDvAWOQBQNetLqzO-g 一.前言 作为一名爬虫工程师,在工作中常常会遇到爬取实时数据的需求,比如体育赛事实时数据. ...
- Python爬虫《爬取get请求的页面数据》
一.urllib库 urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urllib. ...
- 02. 爬取get请求的页面数据
目录 02. 爬取get请求的页面数据 一.urllib库 二.由易到难的爬虫程序: 02. 爬取get请求的页面数据 一.urllib库 urllib是Python自带的一个用于爬虫的库,其主要作用 ...
随机推荐
- js对象及函数(四)
一.对象1.函数对象的创建方法一:使用new构造函数去创建构造函数对象eg: var obj = new Object(); //向对象里面添加属性或方法 obj.name = 'nzc'; obj. ...
- 简述JavaScript模块化编程(一)
在早期编写JavaScript时,我们只需在<script>标签内写入JavaScript的代码就可以满足我们对页面交互的需要了.但随着时间的推移,时代的发展,原本的那种简单粗暴的编写方式 ...
- ajax 传递数组参数
一.ajax 传递数组参数 需要添加: traditional: true, let typeIDArr = [,,,,,]; var that = this; var url = '@Url.Act ...
- MySQL Charset--UTF8和UTF8MB4对比测试
UTF8和UTF8MB4 在早期MySQL版本中,使用只支持最长三字节的UTF8字符集便可以存放所有Unicode字符.随着Unicode的完善,Unicode字符集收录的字符数量越来越多,最新版本的 ...
- Python with语句和__enter__、__exit__过程抽取思想
with语句的应用场景 编程中有很多操作都是配套使用的,这种配套的流程可以称为计算过程,Python语言为这种计算过程专门设计了一种结构:with语句.比如文件处理就是这类计算过程的典型代表. 使 ...
- 业余时间折腾了个微信小程序版本的街机游戏模拟器(吾爱街机),8090后的童年回忆,欢迎大家体验
好多年没来博客园了,有段时间想玩街机游戏,发现都需要下载安装,现在小程序这么流行,是不是可以集成到小程序里(无需下载,在线玩),出于这想法,就业余时间折腾了下,分享给大家,偶尔可以回味畅玩下. 中间遇 ...
- 【Difference Between Primes HDU - 4715】【素数筛法打表+模拟】
这道题很坑,注意在G++下提交,否则会WA,还有就是a或b中较大的那个数的范围.. #include<iostream> #include<cstdio> #include&l ...
- django考点答案
1 列举Http请求中常见的请求方式 2 谈谈你对HTTP协议的认识.1.1 长连接3 简述MVC模式和MVT模式4 简述Django请求生命周期5 简述什么是FBV和CBV6 谈一谈你对ORM的理解 ...
- 【项目管理工具】—— Microsoft Office Project 介绍
Project是由微软开发的项目管理软件.设计的目的在于协助项目经理发展计划,为任务分配资源.跟踪计划.管理预算和分析工作量. 对于我们之前的项目来说,之前的整体计划和WBS任务分解都是通过Excel ...
- 学习Microsoft Visio(1)
基础篇 一.认识Visio 1.Visio是什么 Visio最初属于Visio公司,该公司成立于1990年9月.1992年,公司更名为Shapeware.同年11月,它发布了他们公司的第一个产品:Vi ...