一、引言:

作为一名大三的学生,找实习对于我们而言是迫在眉睫的。实习作为迈入工作的第一步,它的重要性不言而喻,一份好的实习很大程度上决定了我们以后的职业规划。

那么,一份好的实习应该考量哪些因素呢?对于我们计算机专业的学生而言现在的实习趋势是什么呢?

我从实习僧网站爬取了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的更多相关文章

  1. Java裸写爬虫技术,运用多线程技术,高效爬取某个医疗机构网站数据

    最近喜欢上了数据的庞大的感觉,就爬取了一下某个医疗机构网站医疗数据,由于数据量庞大,只爬取了江西省的各个市的各个医院的各个科室的各个科室.中各种信息.其中用的持久层技术是hibernate框架,和用到 ...

  2. python爬取安居客二手房网站数据(转)

    之前没课的时候写过安居客的爬虫,但那也是小打小闹,那这次呢, 还是小打小闹 哈哈,现在开始正式进行爬虫书写 首先,需要分析一下要爬取的网站的结构: 作为一名河南的学生,那就看看郑州的二手房信息吧! 在 ...

  3. 吴裕雄--天生自然PYTHON爬虫:使用Selenium爬取大型电商网站数据

    用python爬取动态网页时,普通的requests,urllib2无法实现.例如有些网站点击下一页时,会加载新的内容,但是网页的URL却没有改变(没有传入页码相关的参数),requests.urll ...

  4. 爬虫(二)Python网络爬虫相关基础概念、爬取get请求的页面数据

    什么是爬虫 爬虫就是通过编写程序模拟浏览器上网,然后让其去互联网上抓取数据的过程. 哪些语言可以实现爬虫    1.php:可以实现爬虫.php被号称是全世界最优美的语言(当然是其自己号称的,就是王婆 ...

  5. 用scrapy爬取亚马逊网站项目

    这次爬取亚马逊网站,用到了scrapy,代理池,和中间件: spiders里面: # -*- coding: utf-8 -*- import scrapy from scrapy.http.requ ...

  6. Python网络爬虫第三弹《爬取get请求的页面数据》

    一.urllib库 urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urllib. ...

  7. 爬取实时变化的 WebSocket 数据(转载)

    本文转自:https://mp.weixin.qq.com/s/fuS3uDvAWOQBQNetLqzO-g 一.前言 作为一名爬虫工程师,在工作中常常会遇到爬取实时数据的需求,比如体育赛事实时数据. ...

  8. Python爬虫《爬取get请求的页面数据》

    一.urllib库 urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urllib. ...

  9. 02. 爬取get请求的页面数据

    目录 02. 爬取get请求的页面数据 一.urllib库 二.由易到难的爬虫程序: 02. 爬取get请求的页面数据 一.urllib库 urllib是Python自带的一个用于爬虫的库,其主要作用 ...

随机推荐

  1. requests模块 高级应用

    目录 requests模块 高级应用 HttpConnectinPool 问题解决 IP代理 简单使用代理 代理池 cookie的处理 页面中验证码识别 使用 multiprocessing.dumm ...

  2. unity shader入门(一):基本结构话痨版

    unity shader 有三种形式:表面着色器(Surface Shader),顶点/片元着色器(Vertex/Fragment Shader),固定函数着色器(Fixed Function Sha ...

  3. let 和 var 定义变量的区别

    一.变量提升 var 存在变量提升,而 let 不存在变量提升,所以用 let 定义的变量一定要在声明后再使用,否则会报错. var //var定义的变量存在变量提升,变量会把声明提升到整个作用域的最 ...

  4. Redis_初识

    一.简介 Redis(Remote Dictionary Server)本质上是一个Key-Value类型的内存数据库,整个数据库统统加载在内存当中进行操作,定期通过异步操作吧数据库flush到硬盘上 ...

  5. cpython多进程

    四 同步\异步and阻塞\非阻塞(重点) 同步: #所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不会返回.按照这个定义,其实绝大多数函数都是同步调用.但是一般而言,我们在说同步.异 ...

  6. 浅谈Python设计模式 - 单例模式

    本篇主要介绍一下关于Python的单例模式,即让一个类对象有且只有一个实例化对象. 一.使用__new__方法(基类) 要实现单例模式,即为了让一个类只能实例化一个实例,那么我们可以去想:既然限制创建 ...

  7. 六、Linux_SSH服务器状态

    一.保持Xshell连接Linux服务器状态 1.登录服务器后 cd /etc/ssh/ vim sshd_config 找到 ClientAliveInterval 0和ClientAliveCou ...

  8. 利用Git钩子实现代码发布

    目录 1.什么是git钩子 2.安装一个钩子 3.常用的钩子脚本类型 3.1 客户端钩子 3.1.1 pre-commit 3.1.2 prepare-commit-msg 3.1.3 commit- ...

  9. php将原数组倒序array_reverse()

    1.数组倒序排列 $arr = array(1,2,3); $arr = array_reverse($arr); print_r($arr);

  10. 快捷定位目录 z武器

    z的源码在这里:https://github.com/rupa/z/blob/master/z.sh 1.把源码复制到你的用户目录下的z.sh文件, 2.然后用vim打开.bashrc这个目录,在最后 ...