大数据分析实践报告_第1页
大数据分析实践报告_第2页
大数据分析实践报告_第3页
大数据分析实践报告_第4页
大数据分析实践报告_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

大数据分析实践报告一、实践目的这次的实践我们运用所学的finereport帆软报表,MySQL,python,从智联招聘网,以西安市为例进行企业招聘中的薪资、职位数、公司福利、学历、工作经验等信息的分析,结果以可视化大屏展现。先利用python爬虫从智联招聘网爬取数据,将爬取的数据存储在MySQL数据库中,然后导入帆软finereport,利用帆软报表分析绘制图,最终实现可视化大屏展示。通过参加一些实践性活动巩固所学的理论,增长一些课本上课堂上学不到的技能与知识。因为知识要转化成真正的能力还是需要实践的经验和锻炼。面对日益严峻的就业形势和日新月异的社会,大学生应该转变观念,不要简单的把暑期兼职当临时工作为挣钱或者是积累社会经验的手段,那样挣到的钱也只是钱而已,更重要的是借机培养自己的创业和动手能力。现在各个用人单位越来越看重大学生毕业生的实践和动手能力以及在人与社会中的交际能力。作为一名大学生,只要是自己所能承受的,就应该把握所有机会,正确认识自己,充分发挥自己擅长的东西,以便以后更快更好的融入社会。二、实践内容1.环境SDK:Python3.6、Anaconda3IDE:PyCharmDatabase:MySQLOS:Windows10PC:MacBookAir13.32.数据来源智联招聘PC端网页(由于智联招聘移动端已经做了一些反爬虫措施,使得我们爬取的时候有很大难度)。3.项目的完成先利用python爬虫从智联招聘网爬取数据,将爬取的数据存储在MySQL数据库中,然后导入帆软finereport,利用帆软报表分析绘制图,最终实现可视化大屏展示。4.Mysql基础#count()函数统计函数SELECTcount(*)FROMemp;#求和函数sum()SELECTSUM(sal)FROMemp;#求平均值avg();SELECTAVG(sal)FROMemp;#求最大值max()SELECTMAX(sal)fromemp;#求最小值min()SELECTmin(sal)fromemp;#加密函数SELECTPASSWORD('root');SELECTMD5('root');#分组函数SELECT*FROMempGROUPBYdeptno;#查询各部门的部门编号,工资和,筛选工资总和大于9000的SELECTdeptno,SUM(sal)FROMempGROUPBYdeptnoHAVINGSUM(sal)>9000;#查询员工编号,员工姓名,部门名称,部门地址#多表查询笛卡尔积SELECTe.empno,e.ename,d.dname,d.locFROMempe,deptdWHEREe.deptno=d.deptno;#将结果并集SELECTdeptnoFROMemp;UNIONALLSELECTdeptnoFROMdept;三、实践过程1.python基础(1)“变量”一词在python中的含义:一个在内存里可以存储数据的空间。(2)写代码一定要仔细,哪怕是差了一个字母一个符号一个缩进,都将报错。(3)python中基本数据类型:整数,小数,布尔(真T与假F),字符串。(4)python语言使用制表位缩进来管理代码,同一级的代码左对齐,书写缩进时用应该用“Tab”键而不是空格键,原因的用空格键很容易产生错误,多一个缩进或者少一个缩进,而“Tab”键是固定的四个缩进(5)字符串常用的方法: len,count(str,start,end),endswith,startswith,index,islower,isupper,isnumeric,lower,upper,join,strip,lstrip,rstrip,replace,split(6)运算符: “=”:赋值运算符,将右侧表达式结果保存左侧变量保存,这与R语言不同 “+,-,*,/,%”:算术运算符 “>,<,>=,<=,==,!=”:比较运算符,运算结果是布尔类型的变量 “and,or,not”:逻辑运算符,一般用来连接比较运算符生成的表达式 int():将纯数字的字符串转换成整数类型 str():将任意类型转换成字符串类型(7)控制流语句: A.条件分支: I.单一条件:if条件表达式(使用比较运算符连接的表达式): II.单一条件分支: if条件表达式: print() else: print() III.嵌套if,当多组条件相互依赖时 IV.多重if,当某个值处于某个区间段时使用多重if B.循环结构:要重复做一件事情的时候break和continue A.break:结束当前循环 B.continue:结束本次循环,进入到下一次循环2.智联招聘信息爬取的主要思路导入爬虫框架scrapy,用优秀的浏览器如谷歌浏览器打开目标网页,使得我们可以查PC端网页源代码或者切换至移动端网页。将主机地址录入爬虫框架,递归发送请求地址爬取详细页面的内容,利用源代码的定位很容易在网页源代码中找到薪资、职位数、公司福利、学历、工作经验等信息的所在位置,利用esponse.xpath函数获取目标文本。在Mysql中创建表以存储爬取的数据。3.python代码实现创建爬虫项目抓取智联招聘 A.下载安装scrapy condainstallscrapy(默认通过国外的下载类库) B.创建爬虫项目:创建一个空的文件夹 I.盘符的切换:C:,D:,E:,F: II.查看目录结构:dir,dir/od III.cd进入到某个目录 IV.创建爬虫项目:scrapystartproject爬虫名称 V.创建爬虫:scrapygenspider爬虫名称''I.输入密码II.查看所有已存在的数据库:showdatabases;III.创建数据库:createdatabasezhilian;IV.选择使用已存在的数据库:usezhilianV.显示当前数据库中的所有表:showtables;VI.创建数据库表:createtablejob( idintnotnullprimarykeyauto_increment, titlevarchar(50), salaryvarchar(10), companyvarchar(100), experiencevarchar(10), xuelivarchar(10), addressvarchar(100), descriptiontext);VII.查看表的结构:descjob;VIII.设置dos窗口使其能够接受中文:setnamesgbkIX.插入数据(要么插入一整条数据,要么就不插入):insertintojob(id,title,salary,company,experience,xueli,address,description)values(&*&&…zzc啊欧俄…%¥&@#¥%)X.查询所有的表记录:select*fromjob;XI.数据入库前先清空下数据表:truncatetablejob主程序:#-*-coding:utf-8-*-这是表示当前用的编码是万国码,最通用的一种

importscrapy#载入python下的scrapy包,用于构建爬虫框架

fromjobinfo.itemsimportJobinfoItem#

classZhilianSpider(scrapy.Spider):

name='zhilian'#直接命名为“zhilian”便于记忆

start_urls=['/xian-530/all/kw196911/?order=0&maprange=3&ishome=0']

#主机地址

host_name=""

defparse(self,response):data_link_url=response.xpath('//section[@id="r_content"]/div/div[1]/section/a/@data-link').extract()

#建立链接

forlinkindata_link_url:

detial_link_url=ZhilianSpider.host_name+str(link)

#递归发送请求地址爬取详细页面的内容

yieldscrapy.Request(detial_link_url,self.detail_parse)

foriinrange(2,4):

print("===================================开始爬取第%d页数据======================================"%i)

next_url=ZhilianSpider.host_name+"/xian-530/all/kw196911/?pageindex="+str(i)+\

"&maprange=3&islocation=0&order=0"

yieldscrapy.Request(next_url,self.parse)

defdetail_parse(self,response):

temp=response.xpath('//section[@id="r_content"]'

'/div[@class="r_jobdetails"]/div/div[@class="about-position"]'

'/div[@class="title-info"]')

#创建岗位数据信息模型对象

info=JobinfoItem()

#创建职位数数据信息模型对象

title=temp.xpath("./h1/text()").extract()[0].strip()

info["title"]=title

#创建薪资数据信息模型对象

salary=temp.xpath("./div[1]/text()").extract()[0].strip()

info["salary"]=salary

#再创建公司名称数据信息模型对象

com=response.xpath('//section[@id="r_content"]''/div[@class="r_jobdetails"]/div/div[@class="about-position"]')

company=com.xpath('./div[2]/text()').extract()[0]

info["company"]=company

#最后创建工作经验数据信息模型对象

experience=response.xpath('//*[@id="r_content"]/div[1]/div/div[1]/''div[3]/div[1]/span[2]/text()').extract()[0].strip()

ifexperienceisNoneorexperience=="":

experience="经验不限"

info["experience"]=experience

xueli=response.xpath('//*[@id="r_content"]/div[1]/div/div[1]/'

'div[3]/div[1]/span[3]/text()').extract()[0].strip()

ifxueliisNoneorxueli=="":

xueli="学历不限"

info["xueli"]=xueli

address=response.xpath('//*[@id="r_content"]/div[1]/div/div[2]/div/text()').extract()[0].strip()

info["address"]=addressjobwork=response.xpath('//*[@id="r_content"]/div[1]/div/article/div/p/text()').extract()

desc=""

foriinjobwork:

desc+=i.lower()

info["description"]=desc

print("==========="+title+"=============="+salary+"====="+company+"======="+experience+"===="+xueli+"====="+address+"======="+desc)

returninfo4.MySQL实现

#See:/en/latest/topics/item-pipeline.html

importpymysql

classJobinfoPipeline(object):

defprocess_item(self,item,spider):

returnitem

classMySQLWriterPipeLine(object):

def__init__(self):

self.connect=pymysql.Connect(

host="localhost",

port=3306,

user="root",

passwd="123456",

db='zhilian',

charset='utf8'

)

self.cursor=self.connect.cursor()

defprocess_item(self,item,spider):

sql="insertintojob(id,title,salary,company,experience,xueli,address,description)values(0,'%s','%s','%s','%s','%s','%s','%s')"data=(item["title"],item["salary"],item["company"],item["experience"],item["xueli"],item["address"],item["description"])

self.cursor.execute(sql%data)

mit()

defclose_spider(self,spider):

self.cursor.close()

self.connect.close()5.结果展示(1)帆软finereport软件结果(2)python爬虫练习结果(3)最终可视化大屏结果四、实践体会本次实践地点为学校二号教学楼210,主要学习帆软finereport,MySQL数据库,python,实践成果为可视化大屏展示,通过本次的实践,对自己的未来可能从事的职业有了一个系统化的认识。老师们带我们遍历了从数据的爬取,数据的整理清洗,到最后的数据可视化展示,分层次的对我们进行了讲解。我们对于从学校学习的理论知识如何最后进行实践有了清晰的认识。在中国互联网上的一分钟,意味着八万笔支付宝交易、两千七百万条微信消息、十万条新浪微博、四百二十万条百度搜索请求、时长二十四小时的优酷视频……数据正在趋于大量化、多样化、低价值密度化,数据科学一词随之而来。利用大数据技术,京东通过数据向用户推送商品,推送相关的产品;沃尔玛超市通过数据分析调整啤酒和尿布的摆放;银行通过数据对客户构造人脸画像以评估贷款风险……大数据分析必然是一个复杂的过程,虽然我们不可能在两周内全部掌握,但是确实对整个流程的过程顺序有了认识,最重要的是理解了整个大数据过程的原理。此次实践,我深深的体会到了知识的重要性,要不断学习。在当下这个信息大爆炸,技术日新月异的时代,只要停下了学习,就会被时代所抛弃。如果不能顺应时代的发展趋势,学习社会前沿的技术,就无法立足于社会中。人工智能是数据科学上的明珠,可以说它正在走进我们的生活。在人工智能领域也会创造越来越多的高价值工作岗位,人工智能领域的人才需求会越来越大。走进人工智能领域,数据分析是一个非常好切入点。因为人工智能实际上建立在统计学与计算机科学基础上的。循着数据分析,数据挖掘,机器学习,人工智能这样一条数据科学的发展线来学习,随着技能难度不断加深,就能够不断接近人工智能这颗明珠。因此打好数据分析的基础对人工智能的学习来说是十分必要的。现如今人工智能领域占统治地位的开发语言是Python,事实上在数据分析领域Python同样是最重要的开发语言。Python语法简单,接近自然语言,有大量的第三方类库,其中包括优秀的网络爬虫框架Scrapy、科学计算类库NumPy、SciPy等以及Matplotlib、Pandas等数据分析类库,所以说“人生苦短,我用Python”。这次的实践周真的感触特别的深,第一次把自己学习的专业知识运用到实际中。从数据的最初获得,到数据的整合清洗以及提取重要的数据信息,再到最后的可视化展现。在这个过程中,我充分体会到了一个统计工作者的成就感,当把杂乱无章的一串串代码变成具体的表格,把那些看似没有联系的数据,通过我们的处理发现其中的内在相关性。特别是最后数据的可视化,更是让我感觉到和生活是这么的贴切。在这次的实践周中,我们进行了分组,让我感受到了团结就是力量这几个字真正的含义。正所谓三个臭皮匠顶个诸葛亮,众人拾柴火焰高,团队的集思广益绝对大于一个人的单打独斗。也正是在和团队的合作中,让我学会了如何与人合作,如何把每个人的能量发挥到最大,如何去实现真正的一加一大于二。当今社会是一个日新月异的社会,大到国与国之间,小到每个个体之间都存在着合作,也只有合作才能共赢,也只有合作才能适应这个日新月异的社会。而如何与人合作,这也是个大学问,这次的实践周中我们的小组也是因为初次合作,在初期产生了很多问题。当然,这也很正常都存在一个磨合期,每个人都是独立的个体,团队的合作不可能像我们的手脚那样配合自如。经过前期的磨合我们就渐入佳境,慢慢的找到了节奏,当一切都走上正轨,团队的力量就发挥了出来。有人找数据,有人整合数据,有人进行数据的清洗,最后有人进行数据的可视化。这种合作的魅力是无穷的,这种团队的力量是让人沉醉的。进行教学的老师也是尽心尽责,深入浅出的带着我们学习了软件的使用。让本来一脸茫然的我们最后变得豁然开朗,让我们可以流畅的操作软件。老师也结合自身的实际情况,告诉了我们行业的发展前景,

温馨提示

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

评论

0/150

提交评论