温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
Python
数据
可视化
中的
应用
案例
分析
刘静
Application 创新应用电子技术 第 52 卷 第 5 期(总第 558 期)2023 年 5 月 391虫是一种按相关协议和规则,自主的在网页中抓取数据的自动化程序3。在数据获取过程中,爬虫程序需要遵守Robots协议,它的具体作用是规定了该网站中哪些数据是允许爬取的,哪些是不允许爬取的4。Robots协议在整个网络中有着极高的规则制度,它能够较好地避免相对隐私的信息被泄露并且提高网络安全性5。本文在爬取过程中严格遵守招聘网站中的Robots协议进行规范爬取;一般选取招聘网页浏览量较小的时段进行网页爬取,不会对爬取目标服务器造成负担,爬虫程序访问网站数据的主要流程如图1所示。1.2 数据获取方法 1.2.1 Requests数据获取Requests爬虫技术其本质就是对浏览器访问服务器的过程进行模拟,所以网络爬虫主要分为以下几个过程:模拟请求、接收数据、解析并处理数据、存储数据。模拟请求主要是针对服务器要求,需要提交0 引言网络招聘凭借其信息传播速度快、成本低廉等优势,成为招聘者和求职者获取信息的新渠道1。由于互联网上招聘信息纷繁复杂,并且大多是面向全国发布,庞大的数据量以及不对称的信息导致众多求职者难以在招聘信息中筛选出关键信息并做出合适的抉择,这也间接导致很多企业难以从众多求职者中发掘所需人才2。本文主要通过编写程序获取就业网岗位招聘信息,结合Echarts、Wordcloud、Flask等模块将数据整合进行可视化展示。不仅可以向求职者提供相应的求职数据参考以及就业的必备技能需求,减少时间成本,提高求职成功率;同时通过分析企业对求职者的技能需求,向教师反馈相应课程的教学目标及重点,以便注重相应知识点的教学,让学生掌握更加娴熟的任职技能。1 数据获取技术 1.1 数据获取工作原理数据获取主要采用的是网络爬虫技术,网络爬作者简介:刘静,昭通学院,硕士研究生;研究方向:软件开发、数据挖掘。收稿日期:2023-01-04;修回日期:2023-05-12。摘要:阐述Python编写程序实现招聘网站数据的获取,并采用内置数据库Sqlite3存储数据,结合Echarts、WordCloud以及Flask等模块将就业数据进行可视化分析,有利于利用数据解决实际问题。关键词:计算机系统,数据可视化,Python,Sqlite3。中图分类号:TP311.52文章编号:1000-0755(2023)05-0391-03文献引用格式:刘静,王凤,孟星,周保林.Python在数据可视化中的应用案例分析J.电子技术,2023,52(05):391-393.Python在数据可视化中的应用案例分析刘静,王凤,孟星,周保林(昭通学院,云南 657000)Abstract This paper expounds that Python programming realizes the acquisition of recruitment website data,and uses the built-in database Sqlite3 to store data,and combines Echarts,WordCloud,Flask and other modules to visually analyze employment data,which is conducive to using data to solve practical problems.Index Terms computer system,data visualization,Python,Sqlite 3.Case Analysis of Python Application in Data Visualization LIU Jing,WANG Feng,MENG Xing,ZHOU Baolin(Zhaotong University,Yunnan 657000,China.)图1 爬虫获取数据流程图Application 创新应用392 电子技术 第 52 卷 第 5 期(总第 558 期)2023 年 5 月的头文件内容进行封装发送给服务器进行验证,头文件内容主要用于存储用户代理信息,用户代理(user-agent)是浏览器访问目标服务器时服务器需要验证的主要信息,它主要记录了浏览器的具体型号、类型和版本。接收数据主要是将服务器发送回来的HTML文件进行获取并采用相应的编码方式暂时存留数据。1.2.2 Selenium数据获取Selenium通过代码控制浏览器进行直接访问,浏览器将服务器响应的数据进行渲染,使用自动化测试程序在浏览器渲染的页面中采用Xpath语法进行目标数据的定位。在向服务器请求目标网页的数据过程中只需要设置相应的URL即可,其余数据获取只需要由驱动程序直接驱动浏览器完成。当浏览器加载完网页数据后,爬虫程序直接将浏览器中存储的网页文件进行读取并解析,通过Xpath语法定位所需的内容,并进行提取和存储。2 数据获取程序设计本文主要针对58同城招聘和拉勾网进行数据获取。由于两个招聘网站中招聘数据的加载方式不同,因此分别设计不同和的爬虫程序进行获取,有利于提高数据获取的效率。2.1 58同城招聘网数据获取 2.1.1 程序流程图由于58同城招聘网站的数据的加载方式为每个界面都采用不同的URL,故采用Requests爬虫进行招聘数据的获取,其数据获取的流程图如图2所示。2.1.2 数据获取程序设计(1)确定URL列表:建立两个列表分别存储区域URL字段和职位类型URL字段。使用两个循环将两个列表中的字段读取出来进行字符串的拼接;同时第三层循环采用Python内置函数range()函数控制页面数量。将循环进行拼接的URL存入URL列表并返回给请求模块。(2)请求模块:Requests网络爬虫属于有头爬虫,故在发起请求时需要设置请求头发送给服务器进行验证,请求头主要包含Cookie和user-agent,通过Requests库中的get()方法向目标服务器进行请求。(3)HTML下载模块:当服务器验证头文件合法后,HTML下载模块将网页资源文件进行下载。(4)数据解析与定位:将网页文件采用lxml库中的etree方法进行解析,再使用XPath语法对职位简述、工资、企业名、薪资、学历、工作经验等信息进行定位。(5)数据处理模块:主要针对薪资进行处理,由于58同城招聘网数据中薪资以“最低薪资-最高薪资”和“面议”两种形式出现。采用sqlit(“-”)+repalce()+if的方法对数据进行处理,数据处理完成后将生成一个二维列表并将返回给存储模块存储数据。(6)存储模块:数据存取采用Python内嵌的轻量级sqlite3数据库进行存取。2.2 拉勾网数据获取 2.2.1 程序流程图图3所示为拉勾网数据获取程序流程图。2.2.2 数据获取程序设计由于拉勾招聘网站属于持续加载的深层网页,其招聘数据的加载需要不断进行请求,故采用Selenium数据获取技术进行获取目标数据。(1)程序安装:Selenium网络爬虫的运行需要浏览器和自动化测试程序Chromedriver的参与;故需要在程序编写测试之前安装Chromedriver与浏览器对应的版本。(2)请求模块:Selenium网络爬虫属于无头爬虫,通过启动测试化测序Chromedriver驱动浏览器发送头文件请求目标URL的网页数据。(3)数据解析与定位:通过Chromedriver使用selenium库中的webdriver方法直接从浏览器渲染的网页文件中解析数据并将目标数据所在的标签以列表的数据形式存储每一个招聘信息。(4)数据处理模块:在爬取过程中主要针对薪资进行数据处理,与requests方法一致。(5)数据存储模块:采用sqlite3数据库进行存储。3 数据可视化 3.1 数据可视化设计 3.1.1 FlaskFlask是用Python语言基于Werkzeug工具箱编图2 58同城数据获取流程图Application 创新应用电子技术 第 52 卷 第 5 期(总第 558 期)2023 年 5 月 393写的一个轻量级Web开发的框架7。由于Flask具有灵活多变的功能和轻量级的性能特征,本文采用模板网页进行修改,适用于招聘数据可视化的网页结构,将各个页面采用Flask框架进行搭建连接。3.1.2 EchartsEcharts是一款由百度前端技术部开发的,基于Javascript的数据可视化图表库,提供直观、生动、可交互、可个性化定制的数据可视化图表8。在本文中主要采用其对各种招聘数据进行数据图表化的任务,可以将不同的招聘信息进行各种可视化数据表的制作,使各种数据形式更加直观和生动。3.1.3 WordcloudWordcloud作为Python环境下的词云图工具包,能通过代码的形式直观地将数据文本转化为直观且有趣的图文形式。不仅可以更加形象化地展示出文本段的主旨,还可以突出关键词组在图中鲜明的视觉效果9,本文主要采用Wordcloud对各种招聘信息数据进行数据图表化,使文本元素的展示效果更丰富。3.2 数据可视化结果分析 3.2.1 职位分布分析从数据库中获取58同城招聘中每个省份发布的招聘职位个数,使用Echarts中的百度地图点图制作图表进行展示,直观地展示出大部分地区的招聘热度可以直观地看出在两个招聘网站中计算机类相关招聘普遍集中在沿海地区以及较为发达的几个城市;其中职位分布较多的地区是北京、上海、广州、深圳和成都等地区。3.2.2 经验要求分析根据可视化数据可以看出,更多的招聘者更倾向于选择具有3-5年之间工作经验的求职者,毕业生需要抓住针对在校生和应届生发布的招聘机会,或通过延长自己在校期间的自主实习时间,从而满足大部分职位对经验的要求。3.2.3 招聘需求分析根据图标可以发现面对绝大部分的企业招聘需求,在掌握精通技能时招聘者依然要求具有较好的编程能力;从中可以看出教师应该重点教学编程技能,使学生重点掌握C#、Python、JavaScript等编程语言及其相关技能。若针对相关类型的招聘进行教学应该重点掌握相关的开发技术,如在游戏开发类型中应重视对Unity3D技术的教学。熟悉的掌握网络招聘需求分析图中占比较高的技能在招聘中可以有更多的机会进行选择,从而增大就业机会。4 结语本文主要通过获取58同城和拉勾网招聘数据,并采用Flask框架对获取到的数据设计可视化界面,通过这些数据可得出数据分析结果,为求职者提供求职数据参考,同时为教师反馈了相应课程的教学重点,从而提高毕业生的就业效率。参考文献1 罗博炜.基于数据挖掘与分析的大学生就业指导J.微型电脑应用,2021,37(08):59-62.2 冯洪熙,王林,魏嘉银,彭林艳,王恋.基于回归分析的网络招聘信息爬取及可视化J.现代信息科技,2021,5(10):1-5.3 杨月.Python网络爬虫技术的研究J.电子世界,2021(10):57-58.4 姜鸿,邵励.大数据时代下网络爬虫的法律适用问题J.法制博览,2021(27):101-104.5 刘晓知.基于Python的招聘网站信息爬取与数据分析J.电子测试,2020(12):75-76+110.6 沈熠辉.以Selenium为核心的亚马逊爬虫与可视化J.福建电脑,2021,37(12):43-46.7 余晓帆,朱丽青.基于Flask框架的社交网站数据爬取及分析J.微型电脑应用,2022,38(03):9-12.8 边倩,王振铎,库赵云.基于Python的招聘岗位数据分析系统的设计与实现J.微型电脑应用,2020,36(09):18-19+26.9 姜华林.基于PyQt5界面的词云制作软件设计J.电脑知识与技术,2021,17(13):74-76+92.图3 拉勾网数据获取程序流程图