一、设计目的与要求
1、设计目的
通过本次课程设计,目的是加深、巩固对本门课程基础理论知识的掌握,理论联系实际,充分认识通用爬虫的网页分类、爬虫要遵守的协议、爬取及解析网页的流程。能够熟练运用urllib库或requests库获取网页源代码,掌握正则表达式、Xpath语法、BeautifulSoup模块的使用规则,会使用re、lxml、bs4、json等进行数据的解析,会使用Selenium工具抓取动态网页并解析存储爬虫数据,认识Scrapy框架的架构及运作流程,掌握Scrapy框架的基本操作,学会使用爬虫框架爬取、处理并保存数据。同时通过课程设计过程中的实践应用训练,复习、领会和巩固Python程序设计语言使用的方法和技巧,培养良好的逻辑思维能力,提高综合运用能力。同时也锻炼学生自我管理和自我发展的能力,合理安排时间完成自己的任务,促进个人和集体良好的合作交往。)
- 设计要求
具体要求:
- 爬取招聘网站全国范围内的技术类、产品类岗位招聘信息。
- 爬取字段名称包括岗位名、工作地点、服务类型、发布时间、工作职责、工作要求等。
(4)分析比较不同岗位对学历、经验以及技能要求。
(5)根据分析结果,得出结论。
(6)使用工具:Python、urllib、requests、lxml、selenium、scrapy、pandas、time等适当选择搭配使用。
二、设计内容
1、设计题目和环境
题目:招聘网站技术类岗位信息的爬取语言:Python
环境:Anaconda3+Pycharm
2、设计过程与步骤
实现该设计所涉及的文件:
(1)最终版产品.csv和最终版技术1234.csv:用于存储爬虫处理后的数据。
(2)yaoqiu.csv:用于数据处理。
(3)课设联系.py:用于数据分析。
(4)词频统计.py,词频统计1.py,词频统计2.py:用于对爬取的数据进行进行统计
(5)可视化.py,可视化二(三).py:用于对数据可视化
操作过程与步骤如下:
- 爬取招聘网址数据
文章图片
图1 爬取招聘网站数据
文章图片
图2 爬取招聘网站数据
- 为爬取加入监听邮件机制
文章图片
图3 发送电子邮件
文章图片
图4 邮箱内容
- 对爬取的数据进行词频统计,取出现频率前十的词频
-
文章图片
图5 词频统计前十
- 删减一些脏数据,进行词云化,核心代码如下所示
文章图片
图6 词云可视化代码
文章图片
图7 词云图
- 对关键词进行统计
-
文章图片
图8 关键词统计
- 对高频词进行可视化
-
文章图片
图9 树形图代码
文章图片
图10 矩阵图
文章图片
图11 可视化折线图代码
- 提取学历,经验特有关键字进行统计
-
文章图片
图12 高频词汇查找代码
文章图片
图13 高频词汇查找代码
- 分析比较产品类和技术类关于经验,学历和技术的对比
-
文章图片
图14 条形图可视化代码
文章图片
图15 工作经验条形图
文章图片
图16 雷达图核心代码
文章图片
图17 学历对比雷达图
文章图片
图18 折线图可视化代码
文章图片
图19 技能对比图
3、设计过程中出现的问题与解决方法
(1)问题一:刚开始爬取腾讯招聘网站的时候用的是requests方法,发现使用xpath爬取的内容为空,一开始以为是自己的xpath语句出现了错误,后来查看网页内容,在搜索的过程中发现是空的,才明白是动态网址。
解决方法:回顾以前的案例,改用driver方法成功解决。
(2)问题二:在数据爬取的过程中想试图加入Email,因为爬取的数据量大,所以加入邮件,在报错的时候可以发送邮件,但是因为以前没有接触过,所以需要自己学习。
解决方法:参考《爬虫实践开发项目》,在这本书中找到了关于Email的介绍以及附属代码。
- 问题三:因为关于数据可视化这一方面掌握的不太牢固,所以可视化这一部分用了大量的时间去回顾。
- 图表可视化结果及结论
文章图片
图20 经验对比
关于产品类和技术类工作经验这一方面,选用条形图进行比较,我们可以清晰的看出技术类在工作经验方面明显要高于产品类,特别是3年以上这一方向,同时我们在找工作的时候如果趋向于技术类的岗位,工作经验相对于产品类会有较高的要求。
(2)关于学历方面的要求
文章图片
图21 学历对比
在学历这一方向上,通过雷达图(蜘蛛图)我们可以明显的感觉到,本科以上这一划分占比最高,尤其是产品类。对于一些本科毕业即将要参加工作的同学建议,从腾讯招聘网站这一数据来看,技术类的岗位对于本科生相对来说比较友好,当然了每个人都有每个人的想法。
- 关于技能方向
-
文章图片
图22 语言对比
关于技能这一方面,我选择了几个IT行业比较常见的语法,我们从这几个方向看,腾讯招聘网站的工作岗位,对于Linux是比较友好的,所以一些在校的学生建议可以去了解一下Linux这一语言,同时,技术类的岗位相对于产品类的岗位对于语言的要求相对来说比较高,如果编程能力比较出众可以多选择一些技术类的岗位。
- 设计总结
(2)大学生活让我对爬虫有了一定的了解,但实际操作领域依旧是一片空白。纸上得来终觉浅,绝知此事要躬行。经过本次大作业,让我对自己有了新的认识,并明确了爬虫这一课程的前进方向。
(3)
1.继续学习,不断提升理论素养
在信息时代,学习是不断地汲取新信息,获得事业进步的动力。现在通过总感觉自己学的不够,要用到知识时总感觉脑袋总是空白。实习后让我明白,为了能更好的适应工作,不得不利用自己空闲时间去弥补学习中的不足。实训内容是与自己所学专业有密切联系的,所以自己在这方面格外侧重,希望能够加强自己的专业知识。
2.加强信心,坚持下去
希望能把所学习的知识,也能运用到课堂上。对自己多一点信心,多给自己点赞赏,多给自己鼓鼓劲,相信自己总会走出一条宽敞大道。
3、学习中的同学相处
感觉学生时代很美好,不仅仅是不需要去努力工作,而是在学生时代你可以有很好的同学,很好的朋友,大家相互嘘寒问暖,不必勾心斗角,同学之间互帮互助没有什么坏心思。我感觉这里才真的有纯洁的友谊,纯洁的感情。我想当踏上了社会,就会存在着利益关系,有工作繁忙,有着上下级的阶级,也多了份人情世故。希望以后自己努力,可以多几个朋友,希望自己可以有个团结工作的环境。在整个学习过程中,同学之间的关系总是那般融洽,学生时代是我们最开心的日子,为了面对以后的生活,我们现在能做的就是好好学习,掌握知识为了自己的明天祖国的未来奉献自己的一份力量。
推荐阅读
- 可视化|一个阿里数据分析师的忠告(决定你工资上限的,是这件事)
- 爬虫|让我们用python来采集数据看看找工作都要会什么吧~
- 爬虫|python采集百度图片数据呐~没有你采集不了得图,只有你不想要
- 可视化|我,27岁,数据分析师,今年无情被辞(想给数据人提个醒!!)
- Java|介绍了Java中的异常
- 资讯|“如今,99.9% 以上的代码都是垃圾!”
- java|解密函数计算异步任务能力之「任务的状态及生命周期管理」
- Kaggle Video Game Sales数据分析
- C语言-经典永不过时|0基础玩转C语言—初识C语言(上)