【《基于python的招聘信息可视化分析系统设计》14000字(论文)】_第1页
【《基于python的招聘信息可视化分析系统设计》14000字(论文)】_第2页
【《基于python的招聘信息可视化分析系统设计》14000字(论文)】_第3页
【《基于python的招聘信息可视化分析系统设计》14000字(论文)】_第4页
【《基于python的招聘信息可视化分析系统设计》14000字(论文)】_第5页
已阅读5页,还剩30页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于python的招聘信息可视化分析系统设计目录TOC\o"1-3"\h\u29852摘要: [2]。因此为了提高查找效率还需要配合搜索文档树使用,通过find()和find_all()方法利用固定的标签名或者指定标签的属性值来对目标元素进行查找,快速获取所需要的数据。可视化技术介绍可视化技术是在1987年提出,并经过多年的发展,和广泛的应用,在如今的许多行业都能看见它的应用。经过长时间的沉淀,不断地更新和发展,各种新型的可视化框架也在不断的出现,从最原始的浏览器原生的可视化技术导线在的前端到后台的可视化框架,功能也越来越强大。可视化原理是指利用现代计算机最新的视觉图像编辑处理等技术成果和应用计算机图形学,将各种数据直接转换成各种图像信息或用表格等的数字形式直接在计算机显示的投影屏幕中或者是投影仪银幕上所展现的出来,在此进行对其中有关的技术理论分析研究,制定开发出了一定程度的应用技术工具和方法。可视化数据处理技术简单一点来说就是能够将大量繁杂抽象的数据信息转换成一些能做到被检索人的直观清晰、容易阅读理解的表现形式,将数据的分布情况以及分析重点直观地展现出来,之后在进一步去了解和认识这些数据,在从中研究出或者得出我们想要的结论。它也是结合了到了计算机图形学、数据挖掘技术、可视化分析技术、图像技术、图像学理论等领域能够为人们构建出与各类数据信息可视化交互的界面,从而帮助人们更深入的进行数据分析。2.3.1.ECharts可视化框架ECharts是国内早期出的,一个由百度公司开发出来的,基于JavaScript语言编写的数据图表可视化图表库,也是中国最后的一款功能最强大的数据图表可视化图表工具,在2018年被百度捐献给了Apache基金会基金会,这应该也是其中最后一个被开源的,同时也可以实现跨平台框架链接运行。ECharts可以在任何不同类型的浏览器下流畅的运行,原因主要来自与它底层相关的强大的矢量图形库ZRender,并能够提供出一个看上去很是直观、交互十分流畅、可自由化制定的可视化库。ECharts不仅是拥有高性能的图形渲染器,而且也是一个可以随意指定定义内置的图表类型,随意的方面包括,视觉设计语言,并且具有很高的可扩展性。作为一个完全基于JavaScript技术实现的图表库,它也并不仅单单只是一个拥有承载着许多图表相应的功能的模板,像各类复杂的图形、图表都是又可谓十分的丰富。在交互方面,ECharts也是具有七个不同的可交互组件,并且支持多种图表或图形的混搭,可以给人们设计一种相当好的一种视觉效果,且也是一种很强大的图表渲染库。并且ECharts还将可以实现直接地利用Ajax等前端技术以及自身的强大的事件机制,将前台的数据主题图形界面与后台的数据主题界面进行无缝实时联动,这样极大的加强了用户的体验。当数据发生改变或者传入新数据时,数据的动态展示效果会随之发生改变,提高了对数据整合和挖掘的能力。图SEQ图\*ARABIC7Echarts可视化框架流程图2.3.2.Matplotlib绘图Matplotlib是python中常用的一个库,组要是在2D的图形领域中使用。使用它我们可以很轻松的经数据进行一个图形化的绘制,而且它拥有了多种不同的输出格式。它能结合NumPy产生的数组来进行一个图像的绘制。脚本层脚本层后端美工层图8Matplotlib结构■脚本层:生成图形与坐标系■美工层:它提供了绘制图形的元素时的给各种功能,例如,绘制标题、轴标签、坐标刻度等。■后端层:主要提供一个画布,在画布上经行绘图。2.3.3.NumPy数据分析NumPy是python中一个功能十分强大的库,主要是对数据进行一个数据操做以及数学计算。它里面包含了许多的库函数可以帮助我们轻松的进行数值计算。而实际上它被应用到的研究范围相对比较的广泛,如人工智能系统中的机器学习、数据智能分析算法中的图像识别处理、数学计算等。对数字处理能力是很强大的。而在本次论文中主要将与Matplotlib结合使用,绘制一些图片系统总体设计流程爬取数据流程设计在前面,介绍了爬虫的一些相关知识,本次爬虫总体流程主要分为四部分,分别是,前期准备,获取数据,内容解析,保存数据,如下图所示:前期准备前期准备获取数据内容解析保存数据图9系统设计流程前期准备:我们要先去查看需要爬取的目标网站的信息,查看目标网页的链接,页面信息,数据范围等,主要借助浏览器的开发者选项查看网页中数据的位置。获取数据:查找到了网页中数据的位置,对应标签的链接。在用python中的requess模块去请求网页信息。内容解析:我们爬取先来的网页html,但里面的内容都是用html代码,而我们想要信息或数据都是在其中。我们需要依次进行查选取,这就是对内容的一个解析。保存数据:经过一系列的解析,把我们想要的信息或者数据,选取下来并写入excel表格中,之后进行测试完成保存在数据库中。数据预处理流程设计把数据通过爬虫方式获取的,原始的数据可能存在缺失、重复、不完整的情况,这时候就要进行一个数据处理。如果要数据存储到数据中,要进行一个数据的处理。连接到数据库以后,去除数据相同的或者是重复出现的值,在进行一个关键字的构建,保证在原有的数据上完整。图10数据处理流程数据可视化设计把清洗完的数据存储下来,保存在数据库中的数据在存入到数据库中,经行一个连接,将数据绘制成一张张能直观图形展现在页面上。这个地方组要包含了用户的登录模块以及可视化图形的一个展示。图11数据可视化流程图系统详细设计按照总体设计的线路,分别进行每一步功能模块的设计,开始实现了该系统初步各项功能并进行其中相关细节的展示。爬虫详细设计首先我们进入目标网页中去查看数据,列如本次选择的是智联招聘中的python工作岗位的一些信息,查看了网页的数据。进入开发者模式,就能看见对应网页上数据信息的位置。如下图所示:图12爬虫过程图主要查看公司名称、岗位名称、薪资、工作地区、经验、学历等这些我们需要的信息位置。图13提取招聘关键信息同时在爬取时,我们所用的浏览器会给目标网址发送信息,这里的信息我们也需要查看。图14爬取网页数据用户信息例如user—agent本机的信息,在爬取时如果没有更改,那么就会被网页的反爬取给阻挡,之后如端口,传输的数据类型等都要查看,查找到了这些我们想要的信息后,就里用python进行一个网页的爬取。爬虫模块功能设计在爬虫界面进行爬虫时,会出现大量的目标网站相关的url信息,在而我们想要的数据或者信息就在里面,我们所需要进行的就是将不同的url拼接得到完整的相关地址进而获取相应信息。对已经获取的信息进行解析,从解析后的数据中获取需要的数据创建并存入对应的xlsx表格中。数据被获取并且加载执行完毕后,用一个API可以首先从一个xlsx文件里面读取最关键部分的数据信息,在读取之后会用该API自动生成的一个可视化的图像(API(ApplicationProgrammingInterface,应用程序编程接口)通常都是指由的一些预先就被定义好过了的函数,目的也都是为了用于提供这样一个应用程序与一个开发组人员之间具有基于调用某类特定软件程序或对某种特殊硬件程序所得以的同时进行访问处理的任意一组例程之间联系的工作能力,而又完全无需访问其源码,或能够理解其内部的工作机制中存在的另外一些细节[4]。4.2.1.requests库用requests库来获取网页的请求信息。requests库并不是Python的自带的库,在使用时需要导入,如果没有导入则会报错。在代码的最开始就需要导入importrequests,之后在获取url才能成功。如导入时报错则需要安装或者重新安装,这里选择是在pycharm的终端窗口中输入指令:pipinstallrequests,就能进行rquests的安装,而这里需要注意你的pip命令是不是符合你所用的pyhon的版本,同时也需要在这个项目的设置中查看,是否已经下载完成,以防止在爬取时会出现错误。requests库安装好了,就需要对目标页面的url获取。要给目标网页发送一个头包,告诉目标网页机型是什么以及我们的请求cookie:res=requests.get(url=url,params=params,headers=headers,timeout=15),其中get时一个请求类型,之前在做爬虫准备时就需要知道当前网页的请求类型,params为详细的请求信息,headers为本地计算机的型号信息,需要模拟进行本地浏览器,发送给目标浏览器,timeout是我们设置的超时时间,由于网络波动,延迟等,以防止一直在运行。超时函数就是用来防止时间爬取时间太长而爬取失败,如果访问目标网站超过了15秒时,就会报错,避免了长时间占用时间。4.2.2.re库re则是一个正则表达式,也是需要进行一个导入importre。拥有一个很强的搜索功能,当从目标网页经行爬取时,会发现有很多的数据,而且很乱,有很多是我们不需要的,又想把需要的数据展示到一个页面上时,就需要强大的搜索功能。同时如果这里也可以进行一个数据的筛选,为我们之后的数据清洗解决了很多的问题。部分代码如下所示:#导入re库importre#筛选出公司的名称company_name=re.findall(r'"company_name":"(.*?)"',response)#筛选工作名称job_name=re.findall(r'"job_title":"(.*?)"',response)re.fndall则是匹配文档response中所有公司和工作的名称,把它们进行一个提取,并保存,"(.*?)",表示的时对应地方的所有字符,而response我们获取的url中的信息。根据这种方式我们可以依次筛选出工资名字、工作岗位、薪资待遇、地点、工作详细链接、公司类型、详细发布时间、福利、公司规模、行业、属性介绍。之后在进行一个遍历一次把一条数据存入一个表格中展示结果图。图15数据采取结果图数据处理模块设计数据处理数据处理是实现可视化分析的另外一个十分重要技术前提,在需要利用Python工具进行可视化数据可视化分析建模时,若要直接连接到数据库,然后可将数据库需要调用的数据模块数据直接导入到Python库中去进行可视化分析。由于通过网络链接进行的爬虫可以获取到的网页上的原始数据,但是网页上存在有许多的信息是缺失、重复、不一致、不完整等一些列的问题,原因是因为每个公司所需要的招收信息不一样,以及里面许多的专业字段不相同,和空值、|等字符的存在,如果直接将爬取下来的信息用来进行可视化分析,可能会对后续的分析结果产生较大影响,未来避免减少数据的出错误,因此使用Python中的pandas库将数据库中的数据写入DataFrames中,对数据进行清洗处理,然后再进行可视化分析。数据预处理流程如下图所示:图16数据预处理首先对采集下来的数据进行一个简单的清洗,就是将里面我们需要的数据或者信息进行一个保存,在对保存的信息进行一个补全、去重、或者删除,确保在之后的数据可视化之前的能顺利进行。数据经清洗筛选后,将按招聘求职信息文档中规定的相关岗位名称、工作场所地点、工作经验、学历、薪资条件等按照结构化的文本字段方式进行数据统一存储处理。部分结构化公开招聘信息文本字段格式如表所示:表SEQ表\*ARABIC1爬取数据显示表数据分析模块设计Matplotlib是一个使用Python编程的2D彩绘图像库,可以用来快速的生成一个适合在各种跨平台的交互式环境中图像物质,在python中是一个即快速又相对简单的简单的一个绘图工具。Matplotlib可直接被用于Python脚本,Web应用程序服务器和四个图形用户界面工具包。本文使用数据库中的job文件经过pandas库进行数据读取,然后使用matplolib生成视图,部分代码如下:plt.figure(figsize=(25,20),dpi=90)#定义视图的大小。#显示折线图plot=plt.subplot2grid((4,3),(0,0),colspan=3,rowspan=1)#相当于将一个格子拆分成了3行3列,列跨度均为3,行间跨度也各均为1plot.set_title("经验需求高到低走向")plot.plot(xname,ynum)plot.grid(axis="y",linestyle='-.')forx,yinenumerate(ynum):plt.text(x,y,'%s'%y)#饼图companysize=db.get_companysize_pie()#定义需要用上的空数据数组,然后通过遍历数据库的数据将数据附上去nameCompanysize=[]countCompanysize=[]#遍历表里的数据forxincompanysize:nameCompanysize.append(x[0])countCompanysize.append(x[1])pie=plt.subplot2grid((4,3),(1,2),colspan=1,rowspan=1)pie.pie(countCompanysize,labels=nameCompanysize,autopct='%.1f%%',shadow=True,startangle=90,pctdistance=0.7)pie.set_title("公司规模占比")#表标题文字pie.legend(bbox_to_anchor=(-0.1,1))#作者标题以Python行业为例,数据分析得到的视图分别如下:图17公司需要人数和工资比较图18公司对python的学历需求图19招收python岗位对经验需求的图20对该网站15天内对python以内信息发布用户模块的设计为了一个美观的效果,在可视化界面的时候,有一个用户登录界面,登陆后里面的数据是从数据库中的数据连接,这样我们在设计的时候,要考虑的连接到数据库,以及flask中的页面展示效果。这里的用户账号,密码都是存放在数据库中的。代码如下:#导入模块fromdb.mysqlimportMysql fromflaskimportFlask,render_template,request,redirect#连接数据库app=Flask(__name__)db=pymysql.connect(host="",user="root",passwd='dddccclll',db='qcwy')cur=db.cursor()@app.route('/')defindex():returnrender_template('index.html') #用户登录@app.route('/index',methods=['POST'])deflogin_post():username=request.form['usm'] #用户账号密码password=request.form['pwd']print(username,password)sql="""selectusername,passwordfromuserwhereusername='%s'andpassword='%s'"""%(username,password)cur.execute(sql) #取数据库中保存的数据results=cur.fetchone()ifresults:returnredirect('/data')db.close()else:returnrender_template('index.html') #导入网页db.close()在这里的导入网页,用的是提前用html写好的一个简易的网页登录窗口。图SEQ图\*ARABIC17用户账号、密码注册表图18用户登录界面系统实现及反思运行程序后保存下来的data.csv文件中的数据,部分图:图SEQ图\*ARABIC19爬取数据结果部分图图SEQ图\*ARABIC20数据爬取执行过程图21网页展示爬虫结果本设计所虽然只是简单的数据可视化分析,但其中的内容点,知识点,较为复杂和丰富。其中还需要学习,HTML、CSS、Js等基础知识点的学习和所用的Echarts框架以及渲染的模块,其中还有很强大的功能。Flask的图形可视化工具等,很多的知识点可以去探索。之后在爬虫网站时,由于基础知识的欠缺,故耗费了大量的时间取分析网页,后面的网页制作、Echarts、flask的学习等知识点的匮乏,导致时间比较紧急,因此省去了一些模块的功能,如用户登录界面等。还有tkinter模块都是先学先用的,花费了不少时间查找资料和编写图形界面。通过本次设计,我有很多的收获,在代码编写能力以及速度都有了很大的提升,特别是在自己寻找bag以及模块版本不兼容的问题上有了很多的心得,以及会使用了许多的框架和模板的套用。以及对python这一门语言有了更深度的了解。参考文献杨小芳.网络数据的可视化研究与实现[D].北京:北京邮电大学,2014.范瑾.面向舆情监测的主题爬虫设计与分析[D].天津:天津科技大学,2014.BruceMcCormick,ThomasTivanti,MaxineBrown.VisualizationinScientificComputing-ASynopsis[J].IEEEComputerGraphics&Applications,1987,7(7):61-70.曹东升.基于web的数据可视化方法研究与实现[D].西安:西安电子科技大学,2017. 汤洋,汤敏倩.网络招聘信息中职业类型与专业领域的情报分析[J].情报杂志,2017,36(06):72-77.任磊,杜一,马帅等.大数据可视分析综述[J].软件学报,2014(9):1909-1936.基于python的网络爬虫技术研究

[J].李玉香,王孟玉,涂宇晰.信息技术与信息化.

201

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论