一、设计目的与要求
1、设计目的
通过本次课程设计,目的是加深、巩固对本门课程基础理论知识的掌握,理论联系实际,充分认识通用爬虫的网页分类、爬虫要遵守的协议、爬取及解析网页的流程。能够熟练运用urllib库或requests库获取网页源代码,掌握正则表达式、Xpath语法、BeautifulSoup模块的使用规则,会使用re、lxml、bs4、json等进行数据的解析,会使用Selenium工具抓取动态网页并解析存储爬虫数据,认识Scrapy框架的架构及运作流程,掌握Scrapy框架的基本操作,学会使用爬虫框架爬取、处理并保存数据。同时通过课程设计过程中的实践应用训练,复习、领会和巩固Python程序设计语言使用的方法和技巧,培养良好的逻辑思维能力,提高综合运用能力。同时也锻炼学生自我管理和自我发展的能力,合理安排时间完成自己的任务,促进个人和集体良好的合作交往。)
实现数据储存,数据可视化等需求。
具体要求:
(3)对工作要求进行预处理,进行词频统计(对词频最高的前10个排名)并可视化。
(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的介绍以及附属代码。
解决方法:在CSDN查看大量可视化的案例,并用在了实践中。
(1)关于工作经验方面的介绍
图20 经验对比
关于产品类和技术类工作经验这一方面,选用条形图进行比较,我们可以清晰的看出技术类在工作经验方面明显要高于产品类,特别是3年以上这一方向,同时我们在找工作的时候如果趋向于技术类的岗位,工作经验相对于产品类会有较高的要求。
(2)关于学历方面的要求
图21 学历对比
在学历这一方向上,通过雷达图(蜘蛛图)我们可以明显的感觉到,本科以上这一划分占比最高,尤其是产品类。对于一些本科毕业即将要参加工作的同学建议,从腾讯招聘网站这一数据来看,技术类的岗位对于本科生相对来说比较友好,当然了每个人都有每个人的想法。
图22 语言对比
关于技能这一方面,我选择了几个IT行业比较常见的语法,我们从这几个方向看,腾讯招聘网站的工作岗位,对于Linux是比较友好的,所以一些在校的学生建议可以去了解一下Linux这一语言,同时,技术类的岗位相对于产品类的岗位对于语言的要求相对来说比较高,如果编程能力比较出众可以多选择一些技术类的岗位。
(1)通过本次大作业的学习与设计我的收获很大,将本学期所学习的知识由零零碎碎到整体实现一个大的设计有了一个清晰的认知,学会了自己去克服困难,磨练了我的意志以及加强了学习的能力,没有学到过的函数通过查阅资料请教同学也可以成功使用,同时我也对于网络爬虫这门课程有了更加深入的了解,喜欢上了这门课程,爬虫可以爬取很多东西,在学习中也能找到自己的乐趣,经过自己的不断努力实现了代码的运行成功获取到了数据
(2)大学生活让我对爬虫有了一定的了解,但实际操作领域依旧是一片空白。纸上得来终觉浅,绝知此事要躬行。经过本次大作业,让我对自己有了新的认识,并明确了爬虫这一课程的前进方向。
(3)
1.继续学习,不断提升理论素养
在信息时代,学习是不断地汲取新信息,获得事业进步的动力。现在通过总感觉自己学的不够,要用到知识时总感觉脑袋总是空白。实习后让我明白,为了能更好的适应工作,不得不利用自己空闲时间去弥补学习中的不足。实训内容是与自己所学专业有密切联系的,所以自己在这方面格外侧重,希望能够加强自己的专业知识。
2.加强信心,坚持下去
希望能把所学习的知识,也能运用到课堂上。对自己多一点信心,多给自己点赞赏,多给自己鼓鼓劲,相信自己总会走出一条宽敞大道。
3、学习中的同学相处
感觉学生时代很美好,不仅仅是不需要去努力工作,而是在学生时代你可以有很好的同学,很好的朋友,大家相互嘘寒问暖,不必勾心斗角,同学之间互帮互助没有什么坏心思。我感觉这里才真的有纯洁的友谊,纯洁的感情。我想当踏上了社会,就会存在着利益关系,有工作繁忙,有着上下级的阶级,也多了份人情世故。希望以后自己努力,可以多几个朋友,希望自己可以有个团结工作的环境。在整个学习过程中,同学之间的关系总是那般融洽,学生时代是我们最开心的日子,为了面对以后的生活,我们现在能做的就是好好学习,掌握知识为了自己的明天祖国的未来奉献自己的一份力量。