基于Python的下厨房美食网站数据采集与分析_第1页
基于Python的下厨房美食网站数据采集与分析_第2页
基于Python的下厨房美食网站数据采集与分析_第3页
基于Python的下厨房美食网站数据采集与分析_第4页
基于Python的下厨房美食网站数据采集与分析_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

湖南商务职业技术学院毕业设计

目录

1引言1

1.1毕业设计背景1

1.2开发环境与工具1

1.2.1Python简介1

1.2.2Anaconda简介2

1.2.3Jypyternotebook简介2

1.2.4Python第三方库简介3

2需求分析3

2.1可行性需求分析3

2.2采集目标功能分析4

2.3关键技术分析4

2.3.1网络爬虫技术4

2.3.2文件存取技术5

2.3.3可视化技术5

3下厨房网数据采集6

3.1采集页面分析6

3.2字段分析8

3.3编程实现10

3.3.1导入所需库10

3.3.2页面解析10

3.3.3数据获取10

3.3.4网页数据存储11

4数据清洗与处理11

4.1数据清洗12

4.1.1数据预览12

4.1.2菜名重复数据去除13

4.1.3无效值、缺失值处理13

I

湖南商务职业技术学院毕业设计

4.2数据储存14

5数据统计与分析15

5.1数据准备15

5.2数据展示16

5.2.1各菜系菜谱数量占比饼图16

5.2.2最受欢迎的十二道菜折线图17

5.2.3菜谱评分分布玫瑰图18

5.2.4作者发布菜品数量及平均分柱状图19

5.2.5用料词云图20

5.3综述20

6小结21

参考资料22

II

湖南商务职业技术学院毕业设计

基于Python的下厨房美食网站数据采集与分析

1引言

当今世界未有之大变局,Internet成为21世纪备受关注的行业之一,它的

高速发展和在全球的普及应用正在给人类生活带来革命性变化,正是我们这一

代年轻人应该抓住的时机和机会。衣食住行各个方面产生的海量数据之前被人

忽略,时代的发展让人们知道了数据分析的重要性,通过巨大的信息网络中发

现的蛛丝马迹却能给人们带来极大的便利。

1.1毕业设计背景

一日三餐维持着最基本的生存,而对于中国这个14亿人口的大国,一方山

水养一方人,不同的饮食习惯也由此产生。前一阵子的疫情原因使得人们外出

活动变少,对于吃来说依旧是不马虎,在各种格式的美食分享网站和app中寻

找自己的食谱。

对于一家美食网站而言,菜谱种类以及数量质量直接决定了用户数量,我们

需要对网页进行解析,然后通过Python爬虫的手段批量获取我们想要的分类下

的内容。我的毕业设计就是通过分析下厨房网站,然后爬取该网站下一栏下的分

类菜谱数据,对爬取下来的数据进行预处理、分析、可视化等步骤。繁杂的数据

经过清洗加分析后通过图片展示,网站可以参考数据制定策略优化内容,大家就

可以清楚知道哪些菜谱是最近的热门菜谱,哪些调料和食材用的多,购买相应

的材料跟上热潮,有哪些优秀作者值得关注。我的毕业设计包含数据爬取、清

洗处理、储存、可视化分析。

1.2开发环境与工具

1.2.1Python简介

Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于1990年代

初设计,作为一门叫做ABC语言的替代品。Python语言具有简单、易学、易读、

易维护等特点,被广泛应用于Web开发、数据分析、机器学习、人工智能、科

学计算等领域。作为一种解释性语言,Python不需要预编译,在运行时需要解

释器逐行执行程序。Python语言的语法简洁明了,使用缩进代替了大括号来表

1

湖南商务职业技术学院毕业设计

示程序的块结构,这也使得代码易读性较高。

Python语言拥有大量的标准库和第三方库,包含了各种常用工具和功能模

块,例如文件操作、网络通信、数据处理、GUI编程、图像处理、文本处理、机

器学习、深度学习、科学计算等。这些库可以帮助开发者更加便捷地实现代码

编写,提高了生产效率。Python提供了高效的高级数据结构,还能简单有效地

面向对象编程。

除此之外,Python还有丰富的社区支持,Python社区中有众多开源的工具

和框架,例如Django、Flask、PyTorch、Tensorflow、Numpy、Pandas等等,

这些开源工具和框架为Python生态系统的发展提供了强大的支持和推动。随着

版本的不断更新和语言新功能的添加,Python逐渐被用于独立的、大型毕业设

计的开发。

1.2.2Anaconda简介

Anaconda中文直译过来就是大蟒蛇,它是一个开源的python发行版本,包

含了conda、python还有一大堆安装好的工具包,Anaconda主要包含以下四个

部分:

Conda:是Anaconda的包管理和环境管理工具。它可以方便地创建、删除

和切换不同的Python环境,并可以在不同的Python环境中安装和管理不同的

包和库。

Python:Anaconda自带了Python解释器,用户可以直接在Anaconda环境

中开发和运行Python程序。

Packages:Anaconda自带了大量的Python科学计算和数据分析的包和库,

例如Numpy、Scipy、Pandas、Matplotlib、Scikit-learn等等。这些包和库可

以直接在Anaconda环境中使用,无需额外安装。

GUI:Anaconda还提供了一个名为AnacondaNavigator的图形化界面,可

以方便地管理和使用环境、包和库。

1.2.3Jypyternotebook简介

Jupyternotebook是一种基于浏览器的工具。如果你想使用Python在

JupyterNotebook中进行编程,首先需要在本地安装Python和Jupyter

Notebook环境。一般来说,你可以通过安装一个Python发行版,例如Anaconda

来方便地获得这两者。安装好后,你可以在终端中打开JupyterNotebook,它

会自动在浏览器中开启一个网页,显示Notebook主页。

2

湖南商务职业技术学院毕业设计

在Notebook中,每个Notebook都由一系列单元格组成。这些单元格可以

包含代码、Markdown文本或者Raw文本。你可以在单元格中编写Python代码,

逐个运行代码单元格并获像一个笔记本它将实时代码、说明文本、数学方程、

可视化内容结合起来,放在一个可共享的文档中而且它支持Markdown标记语言,

在浏览器编辑界面可以很方便的添加注释。在jypyternotebook执行代码的时

候对于注释性文本并不会执行,极大的方便了老师教学,或者开发者讲解毕业设

计。

1.2.4Python第三方库简介

Python第三方库在使用前要先进行安装。

requests:requests库建立在Python语言的urllib3库基础上,更为简洁,

是一个处理HTTP请求的第三方库,它的最大优点是程序编写过程更接近URL访

问过程。

Csv:csv属于python中的内置模块,它能够读取csv格式的文件或者将数

据存入到csv表格中,csv是表格和数据库中常见的文件操作格式。

NumPy库是Python数据分析的基础,用于处理多维数组,可以存储和处理大

型矩阵,它还提供了高级的数值编程工具,计算比python提供的列表结构要高

效的多。

pandas:基于numpy扩展的一个重要第三方库,它是为了解决数据分析任

务而创建的。pandas提供了一批标准的数据模型和大量快速便捷出来数据的函

数和方法,提供了高效的操作大型数据集所需要的工具。

matplotlib:绘图库,主要是偏向于二维绘图包括折线图、条形图、扇形图、

散点图、直方图等等。

Pyecharts:将python与echarts结合的强大的数据可视化工具。使用

pyecharts可以生成独立的网页,也可以在flask,Django中集成使用。

2需求分析

2.1可行性需求分析

1、技术可行性

Python是面向对象语言中的一门通俗易懂的计算机编程语言,本次毕业设

计中使用Python编写程序来实现数据获取,数据清洗预处理,数据可视化。在数

据获取的过程中通过抓包分析发现下厨房网站编写代码得到网页面数据的返回

3

湖南商务职业技术学院毕业设计

值。随后将爬取出来的原始数据暂时以csv格式储存起来,随后用python自带

的库来实现数据可视化的内容。

以上为此次毕业设计的技术可行性,我也将在后续的工作中将所有的步骤

实现到位,保证数据的准确性和安全性。

2、毕业设计可行性

民以食为天,本次毕业设计通过采集比较美食社区中位居前列的下厨房网

站来分析大众喜爱的美食。我们也将从菜品种类、评分及菜系等方面对其进行

剖析,分析出有价值的信息,将其可视化最后根据结果得出结论。

2.2采集目标功能分析

本次毕业设计的数据集的来源是下厨房网站,是通过python爬取下厨房网

站部分分栏下不同菜系下的信息。数据清洗后共833条记录,爬取完成后尽可能

的检查数据的准确性,确定爬取出来的数据无误。

分析下厨房网站网页信息,我们需要爬取的参数有菜品、链接、用料、评分、

作者、菜系等数据,在对原始数据进行预处理后我们会对其数据进行分析。例如,

从菜系的数量对其进行分析对比,查看各个菜系有多少,大众更偏好的是哪一种,

通过菜品平均分占比来网站可以参考内容要做哪些方面的调整。通过最近7天

内做过菜品人数字段对比来获取最近大家都在做哪些菜,根据用料绘制词云图

来看哪些调料和食材用的多。又或者想要关注一些优质作者分享的菜品,那么我

们就可以根据作者分组来统计每个作者的菜品数量,和菜品评分的平均分来分

析出哪些是值得关注的作者。

2.3关键技术分析

2.3.1网络爬虫技术

上网时都会遇到需要缓存在本地的数据,当数量比较小的时候我们可以自

己采取手动下载的方式去获得想要的数据,不过在我们的大数据领域接触到的

数据量是非常大的。如果我们需要获取的数据量极为庞大,这个时候一个一个

去点击下载获取数据无疑是很麻烦的,能不能有一种办法可以让电脑帮我点击

下载,帮我收集资料呢。

网络爬虫就可以帮助我们,网络爬虫也被人们叫做网络机器人,顾名思义就

是只需要编写程序或者一些小脚本来控制爬虫自动的浏览互联网并且对想要的

目标进行精准的数据的采集。网络爬虫按照系统结构和实现技术,大致可以分

4

湖南商务职业技术学院毕业设计

为以下几种类型:通用网络爬虫(GeneralPurposeWebCrawler)、聚焦网络

爬虫(FocusedWebCrawler)、增量式网络爬虫(IncrementalWebCrawler)、

深层网络爬虫(DeepWebCrawler)。实际的网络爬虫系统通常是几种爬虫技术

相结合实现的。

在大家的印象中常常将普通的网络爬虫与黑客混为一谈,其实二者之间有

很大的区别。黑客属于违反法律肆意窃取个人或者组织内有价值的信息以此获

利,而爬虫就是一个探测机器,它的基本操作就是模拟人的行为去各个网站溜达,

点点按钮,查查数据,或者把看到的信息背回来。简单来说,它包含三个步骤:

采集信息、数据存储和信息提取。别有用心之人就会利用调整爬虫的访问频率,

对于被访问的网站而言会增加其负荷导致网址奔溃。

由此可见,网络爬虫技术是一把双刃剑,一个不小心可能就会伤害到自己和

他人,所以我们技术人员要懂法、守法。在法律允许的范围内去编写自己的脚本

程序,坚决不能做违法犯罪的行为。

有爬虫技术,那也一定存在反爬取的技术了。爬虫要能够绕过或者突破人家

的防守机制从而获取到自己想到要的数据。常见的反爬机制有要求你登录输入

验证码、IP、JS加密、css反爬、或者Ajax异步等手段,这些手段会加大爬取

数据的工作量,也会加大网站的开发成本,所以像一般的小网站最多设置一个小

反爬,对于我们获取数据来说比较容易。

2.3.2文件存取技术

Python存储语句如图2-1显示:

图2-1python存储语句图

2.3.3可视化技术

爬取下来的数据通过预处理、保存为csv文件格式。该数据我们能否一眼

就得到我们想要的结论呢?很显然是不可能的,一目十行也只是浏览,机器不

能根据特定场景和用户需求来进行思考我们就需要一种技术,根据我们获取到

的庞大数据将其通过统计学图形的方式展现在我们眼前,让我们对其结果一目

了然。这个就是数据可视化技术。

可视化技术使人能够在三维图形世界中直接对具有形体的信息进行操作,

5

湖南商务职业技术学院毕业设计

和计算机直接交流。这种技术已经把人和机器的力量以一种直觉而自然的方式

加以统一,这种革命性的变化无疑将极大地提高人们的工作效率。可视化技术

赋予人们一种仿真的、三维的并且具有实时交互的能力,这样人们可以在三维

图形世界中用以前不可想象的手段来获取信息或发挥自己创造性的思维。多年

来可视化的技术也逐渐发展成为了一下三类:科学可视化、信息可视化、可视

化分析。而我们这里用到的就是信息可视化,信息可视化的处理对象是非结构化、

非几何的抽象数据,如金融交易、社交网络和文本数据,其核心挑战是针对大尺

度高维复杂数据如何减少视觉混淆对信息的干扰。

本次毕业设计的数据可视化,使用python第三方库matpoltlab、pyecharts

去进行,两个库中包含了许多库,分别对应饼图、条形图、直方图、折线图等图

形,可以很好的将数据高效率的表现出来。

3下厨房网数据采集

3.1采集页面分析

我们首先通过谷歌浏览器搜索下厨房进入首页,点击全部分类找到菜式目

录下查看不同菜品的信息,观察图3-1,3-2其中URL为:

/category/*****/,观察下面两张图片可以看出,

点击不同的菜式网址也在变化。

图3-1下厨房网址页面1图

6

湖南商务职业技术学院毕业设计

图3-2下厨房网址页面2图

点击鼠标右键选择检查,跳出开发者工具页面,如图3-3所示。

图3-3分析网页页面图

切换至网络面板(Network),刷新一下页面,点击“400076/”资源里的,

Headers标签,可以看到它的请求类型是GET,所以我们可以根据以上特点通过

Requests方法发送请求来获得响应的数据,指定编码后就可以获取网页信息,

如3-4所示。接着往下翻就可以找到爬取时需要使用的User-Agent,如3-5所

示。

7

湖南商务职业技术学院毕业设计

图3-4分析网页Headers请求页面图

图3-5User-Agent图

3.2字段分析

8

湖南商务职业技术学院毕业设计

点击开发者工具界面上方的数据预览Preview按钮,如图3-6,可以看到我

们需要的所有的数据信息都是呈现json格式传递在这个网页面,所以我们只要

重复获取响应然后把数据依次写入到csv格式的文件当中就好了。

图3-6分析数据xpath信息页面图

点击需要获取的数据内容,比方说要获取菜名,利用开发者模式定位到菜名

字段的位置,右击元素面板对应的元素选择copy,就可以复制菜名对应的xpath

信息,如图3-6,可以重复以上操作获取其他字段的xpath信息。

图3-7分析数据xpath信息页面图

9

湖南商务职业技术学院毕业设计

3.3编程实现

3.3.1导入所需库

自行下载导入进行网页数据爬取以及存储会用到的库,如下代码所示。

图3-8导入库图

3.3.2页面解析

创建一个空列表用来存放代表不同菜式的数字,遍历该列表,利用for循

环来实现获取不同菜式网页的内容,通过观察不同页面的url可以看出

category/{}代表不同的菜式,page{}代表不同页数的页面,利用format函数

改变数字来实现自动切换菜式和翻页的效果,这里我们每个菜系爬取25页。获

取url后我们利用requests对网页发起请求,使用lxml对获取到的内容进行

解析,解析成功后使用xpath语句对需要的字段内容进行爬取。

图3-9页面解析图

3.3.3数据获取

遍历lis列表获取每一个菜品的信息。获取下面分析所需要的字段,['菜

名','菜品链接','用料','评分','7天内做过的人数','作者','菜系']。菜品链

接我们需要拼接一下公共部分,后期在文件里面存储的链接就可以直接打开。

在对用料这个字段的数据进行爬取时存储显示不完整,所以在这里使用join函

数把单个原料整合在一起,如['奶油奶酪','蓝莓','茴香']这个列表的元素在

经过整合之后就变成了['奶油奶酪,蓝莓,茴香']。在爬取7天内做过人数的字

段时有一些新更新的菜品因为还没有人做过会影响存储,所以我们加入判断如

10

湖南商务职业技术学院毕业设计

果爬取列表为空添加元素为0。对于菜系字段我们封装了一个choose函数通过

不同的编码来判断是哪种菜系。

图3-10数据获取图

3.3.4网页数据存储

获取完所用字段之后,使用zip函数把所有的菜品名称、链接、用料、评

分、做菜人数、作者以及菜系进行整合。每循环一次就把整合好的数据存储在

定义好的列表中,最后利用pandas库的功能存储成csv文件,指定编码

utf-8_sig。

代码如下:

图3-11数据存储图

4数据清洗与处理

获得所需的数据之后,为了方便下一步绘图我们需要对数据进行预处理,数

据清洗是对数据进行重新审查和校验的过程,目的在于删除重复信息、纠正存

在的错误,或者是重新生成便于后续可视化的字段,还要保证数据的一致性,不

仅如此,我们需要将数据进行重新排序使数据有序化,这样子在开发人员对数据

信息的调用和共享过程中都很方便。下面我们需要将爬下来的数据和网页原数

据进行比对,并且检查是否出现空值、错值,还有数据的位置是否正确。根据不

同的需求我们要对数据进行不同的处理。

11

湖南商务职业技术学院毕业设计

4.1数据清洗

在本毕业设计中我们主要是把无用列进行删除,再检查一下后续可视化需

要用到的字段有无重复、错误和缺失,如菜名、用料等字段,同时还要注意字

段的类型。

4.1.1数据预览

图4-1数据预览图

导入两个库显示部分数据,我们把后续分析用不到的菜品链接这一列删除。

图4-2删除无用列图

12

湖南商务职业技术学院毕业设计

4.1.2菜名重复数据去除

我们把关于菜名字段重复的数据行进行删除。

图4-3重复数据去除图

4.1.3无效值、缺失值处理

下厨房评分满分为10,然而通过观察评分我们可以看出存在数据大于10以

上的字段,为了后面便于分析,我们用replace来把评分大于10和等于0的数

据统一替换成空值进行下一步处理。

图4-4无效值处理图

13

湖南商务职业技术学院毕业设计

经过检查,发现数据除了刚刚置空的评分字段还有用料这一列存在缺失,那

么我们把存在空值的数据行进去除。

图4-5缺失值数据行去除图

4.2数据储存

剩下需要的数据,重新排序整理后以原网页格式存入data_zhp.csv文件中,

留存后续作为数据分析可视化使用。数据储存的方法有很多种,如果需要储存较

大的数据信息就需要用数据库,数据库使用的sql语句在频繁的数据修改和统

计计算方面表现都很优秀。或者也可以直接用记事本格式储存(txt),其他文

件的形式储存csv、excel、json等,为了方便读取且本次爬取的数据较少,所

以我们选择保存在csv就好了。

如图4-6所示:

图4-6数据存储为csv文件图

14

湖南商务职业技术学院毕业设计

5数据统计与分析

5.1数据准备

导入相关库,使用python加载源数据,如图5-1、5-2。

图5-1数据加载页面图

图5-2数据页面图

15

湖南商务职业技术学院毕业设计

5.2数据展示

5.2.1各菜系菜谱数量占比饼图

图5-3数据展示页面图

按照文件中菜系的字段将数据进行汇总和降序处理如图5-3中可以看出家

常菜数量占比最高,其次就是快手菜。说明菜谱还是多以生活中来并且贴近生活,

大家更加喜欢去分享平时自己喜欢且更容易接触到的菜谱。而相对于下酒菜来

说受众群体相对较小菜谱数量也少。快手菜数量占比仅次于家常菜,说明短视

频用户基数大,用来推广菜式菜品更为高效。创新占比排名第三。综上,对于

美食网站而言,菜式内容要更为大众化,新潮化。

16

湖南商务职业技术学院毕业设计

5.2.2最受欢迎的十二道菜折线图

图5-4数据展示页面图

根据字段7天内做过的人数绘制图5-4,中可以看出来7内天最受欢迎的十

二道菜,该图可以从一周做过的人数多少来分析出最近一周的热门菜谱有哪些,

让大家紧跟热点,买菜的时候可以有所参考。通过分析该菜品不难发现菜名中

带有‘酸辣’等字眼,天气逐渐炎热大家更喜欢比较开胃的菜品。

17

湖南商务职业技术学院毕业设计

5.2.3菜谱评分分布玫瑰图

图5-5数据展示页面图

下厨房网菜谱实行10分制,从图5-5可以看出菜品的评分占比分布不匀,

说明该评分可信度较高。获得8到9分菜品数占总菜品数的百分之三十左右,

说明该网站上的菜品能得到半数以上用户的好评,百分之四十五的用户给了7

分以下的评价,这么看来许多菜品还是有进步的空间。只有接近百分之十一的

菜品获得了比较高的评价算得上“镇站之宝”的菜品了。总体来说下厨房好评

还是占半数的,可以看出下厨房还是得到了大家的认可。产品更新换代经历淘

汰才能跟上人们日益增长的需求,菜品也是一样,网站要给出激励用户发布有

质量的菜式,也要同时吸引更多新用户来做菜进行评分,对于评分高的菜谱发

布作者可以适当鼓励,这样网站才能有活力长久的运营下去。

18

湖南商务职业技术学院毕业设计

5.2.4作者发布菜品数量及平均分柱状图

图5-6数据展示页面图

该图汇总了发布菜品数量前十的作者以及他们发布菜品评价的平均分,并

且按照评价平均分降序进行排序。从图中可以看出作品数量占大头的分别是一

颗糖572196和古典美人美食,厨房笔记-fang跟在其后,其余的作者数量就都

较为一般了,然而数量不能决定什么,菜品评价高才是王道。作品数量较多的

作者一般对食物有更多的接触,对美食有更多的了解也乐于分享,但是对于一

个美食网站来说既要有足够菜式数量能满足各类人群的需求,也要保证其菜品

的质量才能有稳定的用户群体。对于琳琅满目的菜品害怕容易失败口味不好的

用户不如关注图中菜品评价较高的作者,参考他的菜谱更快做出自己想要的美

食。

19

湖南商务职业技术学院毕业设计

5.2.5用料词云图

图5-7数据展示页图

中国菜讲究色香味,想要做出佳肴如何用料也有讲究。如图5-7所示,字

体越大的字段说明在菜谱中用的越多,如盐、耗油、生抽这些用料。用户可以

根据用料词云图来填充家中的厨房。

5.3综述

本毕业设计通过xpath对下厨房网站数据进行爬取,我们得到了菜品种类

和评分等数据,通过删除不需要的列,查看评分字段对无效值和缺失值进行处理

之后,可视化这些数

温馨提示

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

评论

0/150

提交评论