版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
湖南商务职业技术学院毕业设计
目录
1引言1
1.1项目背景1
1.2开发环境与工具2
1.2.1Python简介2
1.2.2MySQL简介2
1.2.3Jupyternotebook简介2
1.2.4第三方库简介3
1.2.5Pyecharts介绍3
2需求分析3
2.1可行性需求分析3
2.2采集目标功能分析4
2.3关键技术分析4
2.3.1网络爬虫技术4
2.3.2文件存取技术5
2.3.3可视化技术5
2.3.4数据清洗技术5
3数据采集6
3.1采集页面分析6
3.2字段分析8
3.2.1产品/品种字段分析8
3.2.2所在产地字段分析9
3.2.3价格分析10
3.2.4添加时间字段分析11
3.3编程实现11
4数据清洗与处理12
4.1数据清洗12
4.2数据储存14
I
湖南商务职业技术学院毕业设计
5数据统计与分析17
5.1数据准备17
5.2数据展示19
5.2.1依据“所在产地”找出产品量最大前10和最少前10的数据统计19
5.2.2依据水果品种数据词频进行统计21
5.2.3依据产水果商品价格进行统计和分析22
5.2.4依据果农上传水果价格时间进行统计23
5.3综述24
6小结24
参考资料25
II
湖南商务职业技术学院毕业设计
基于Python的中国水果交易网数据采集与分析
1引言
近些年来,信息技术的发展已成为中国社会发展的最重要特征之一。该领
域为中国经济发展带来了巨大的应用价值,凸显了社会发展的多样性。随着中
国技术发展的不断创新,电子商务领域也面临着创新发展的挑战。尽管电子商
务是近几年才发展起来的新兴产业,但技术创新必然会带来新的变化。其中,
大数据、云计算等高新技术和新兴技术在推动这一内容方面发挥了重要作用。
利用大数据技术收集和分析信息的能力可以为电子商务交易提供动态的实时服
务体验,有助于更有效地控制信息和运营电子商务业务。
1.1项目背景
中国水果电子交易平台于2011年1月1日正式上线!它是由来自安徽的
安徽方伟创立的,在水果和电子商务等领域有经验!我们希望建立亚洲最大的
水果贸易信息平台!
专业的国内水果交易平台为其成员提供丰富的商业信息,并每天推荐大量
知名公司,提供不同行业经济活动的参考。凭借其独特的市场定位和深度服务
内容,该网站每天有数千次访问,并稳步增长,成为企业沟通,发布和接收信
息的重要渠道。
通过中国水果交易网市场的数据采集、利用可以有效的了解水果市场的发
展趋势。利用python强大的爬虫库,可视化库,anaconda库等,为数据分析和
挖掘提供强大支持。
针对中国水果交易网水果类的产品进行数据分析挖掘行为,通过数据可视
化将爬取到的数据图形化,从而直观的了解市场和水果之间的供给关系,预测
消费者对市场上水果的喜好要求,从而制定一个可以适应不同消费个性需求的
营销方案,为农产平打开新市场。
充分利用python语言,针对中国水果交易网水果类农产品,对产品数据进
行爬取、清洗、可视化分析,从中找出我们需要的信息。农业生产力和市场一
直有不平衡的问题存在,从而发生农产品滞销,这时大数据技术的优点就体现
出来了,可以利用大数据来分析市场需求,来解决果农的相关问题,帮助果农
更好的掌握信息,从根本上解决问题。
本项目大致步骤分为:确定目标,明确目的,数据爬取,数据清洗,数据
1
湖南商务职业技术学院毕业设计
可视化分析这五项,本项目将中国水果交易网数据信息爬取到本地,将数据转
换成用户看得懂,读得懂的数据,让用户更容易了解市场信息。
1.2开发环境与工具
本项目涉及到中国水果交易信息的数据采集可趋势分析,以及呈现数据的
可视化图形,技术包含python爬虫技术、可视化分析技术、数据采集和分析技
术。所用的软件主要包括chrome浏览器、pycharm,和基于一些python的开发
环境和工具,使用到的数据栈有python、Anaconda、Echarts、Jupyter
notebook。
1.2.1Python简介
20世纪80年代末,荷兰的龟叔(GuidoRossum)创造了Python。
Python语言是在ABC语言的基础上开发而形成的,最初是作为ABC语言的
一个替代品开发的。尽管ABC语言是一种强大的高级编程语言,但不幸的是,
由于ABC语言好还尚未被广泛使用。在这个基础上,Guido在开发之初选择了开
源Python语言。Python语言不仅增加了ABC语言中所没有的许多功能,而且还
为它开发了许多丰富而强大的库。有了这些Python库,程序员可以轻松地将其
他语言的不同模块(特别是C语言和C++语言)结合起来,所以Python语言通
常被称为“胶水”语言。
1.2.2MySQL简介
由瑞典公司MySQLAB开发的MySQL关系型数据库管理系统是Oracle的产
品。MySQL是最流行的关系型数据库管理系统之一。在Web应用程序方面,MySQL
也是最好的RDBMS(关系数据库管理系统)应用程序。
MySQL是一个关系数据库管理系统。相对数据库将数据存储在不同的表中,
而不是将所有数据放在一个大型仓库中,这样提高了速度和灵活性。
MySQL数据库使用的SQL语言是最常用的标准数据库访问语言。MySQL软件
采用双重授权策略,分为社交版和商业版。MySQL由于其体积小、速度快、总拥
有成本低,尤其是开源的,通常被选为创建小型、中型和大型网站的网站数据
库。
1.2.3Jupyternotebook简介
JupyterNotebook是一个开源的Web应用程序,允许用户创建和共享包含
2
湖南商务职业技术学院毕业设计
代码、公式、可视化和文本的文档。其应用包括:数据清理和转换、数值建模、
统计建模、数据可视化、机器学习等。
1.2.4第三方库简介
Requests:是一个清晰简单的第三方库,用于处理HTTP请求。它们最大的
一个优点是在编程过程更加接近访问URL的过程。这个库基于urllib3,Python
语言库。
Csv:csv属于python中的内置模块,它能够直接读取csv格式的文件或者
将数据直接存入到csv表格中。并且csv文件是表格和数据库中常见的文件操
作格式。
Numpy:是Python中的一个用于第三方数字计算的开源库,用于处理相同
类型数据的多维数组,缩写为“ndarray”,简称数组。这个开源库可以用来进
行存储和处理大型矩阵,这比Python语言的列表结构更有效。Numpy提供了许
多先进的数值编程工具,如矩形计算,向量处理,n维数据转换等。
Pandas:一个基于Numpy扩展的重要第三方库,用于解决数据分析任务。
Pandas提供了一组标准数据模型以及各种功能和方法,以快速方便地输出数据,
并提供了有效处理大型数据集所需的工具。。
Matplotlib是Python符号库。它可以与Numpy一起工作,并提供了一个有
效的开源MATLAB替代品。
wordcloud、scipy、jieba:生成中文词云的。
1.2.5Pyecharts介绍
pyecharts是Python与Echarts结合之后的产物,Echarts是一个由百度
开源的数据可视化库,它是一个纯JavaScript的图表库,可以为用户提供直观
生动,可以直接交互,可高度个性化定制的数据可视化图表,pyecharts封装了
Echarts各类图表的基本操作,通过了渲染机制,直接输出一个包含JS代码的
HTML文件。
2需求分析
2.1可行性需求分析
1.技术可行性
以Windows10为操作系统,基于python3.8版本,采用了jupyternotebook
3
湖南商务职业技术学院毕业设计
和PyCharm为开发工具,运用mysql进行数据库存储;
对于python爬虫来说,python是非常优秀的编程语言,因为python中有
很多非常好用的爬虫库,像xpath、beautifulSoup、正则表达式等等,可以十
分方便的写爬虫脚本。
在数据可视化中,也经常会使用python的可视化库matplotlib、pyEcharts。
Python编程语言的语法很简单,方便用户进行代码编写,可读性强。
本次项目使用python编程语言,利用简单易懂的python进行程序的编写,
能够让我更加轻松的编写爬虫、数据清洗、可视化。再加上利用python强大的
第三方库,利用这些库,为我爬取中国水果交易网的信息、数据清洗、可视化
提供了十分良好的技术支持。
2.项目可行性
本次项目利用大数据技术对中国水果交易网进行数据采集分析,通过对这
些数据的可视化分析,可以从这些图像中发现一些价格上,销售上的规律。通
过利用这样的技术对中国水果交易网水果的销售可以有预见性的分析,可以用
来解决很多农产品上经常出现的问题,比如农业生产和市场匹配的问题。通过
大数据分析,对市场上存在的问题预知,对市场起一个先知作用,在农产品的
生产和销售上参与,可以精确定位消费者们的喜好,提高自己农产品的质量,
从而定制一个更有针对性的销售策略,满足消费者需求。
2.2采集目标功能分析
此次项目的数据来源于中国水果交易网(“/”),是
使用xpath对数据进行定位爬取中国水果交易网水果行情信息,数据爬取共
12000条记录,以此保证数据的准确性。
基于python编程语言的开发环境和xpath,对中国水果交易网水果行情进
行爬取采集数据,所有的数据都是来源于中国水果交易网上水果行情的真实信
息,然后对网页上的产品、所在产地,和价格,和上传时间进行爬取,然后将
数据进行清洗,去掉一些不需要的信息,然后通过可视化作图进行展示,让数
据变得美观,利于用户的阅读性。
2.3关键技术分析
2.3.1网络爬虫技术
网络爬虫也叫网络机器人或者网页蜘蛛。利用程序或者是脚本来自动穿梭
4
湖南商务职业技术学院毕业设计
互联网,然后进行数据信息的采集。网络爬虫按照系统结构和实现技术,可以
分为:通用网络爬虫、聚焦网络爬虫、增量式网络爬虫、深层网络爬虫等等。
网络爬虫基本工作流程:
首先选取url网址,将这些url网址放入代抓取的url队列中;利用http
库发送一个requests的请求到目标网站上面去。如果服务器正常响应,就会返
回一个response对象给用户,而这个response对象上就会包含有要获取的网
页内容。然后再利用python网络爬虫自带的解析库,对爬取到的数据进行解析。
最后就可以保存成各种格式的文件,然后放入数据库中。
2.3.2文件存取技术
CSV全称“Comma-SeparatedValues”,是一种使用逗号分割值格式的文件
格式,也是一种纯文本格式文件。他可以和excel表格进行转换。
MySQL数据库是一个关系型数据库管理系统。关系型数据库将数据存储在不
同的表中,而不是存储在大型数据仓库中,这可以提高运行速度、增加灵活性
并简化数据管理。
2.3.3可视化技术
数据可视化就是将大量的数据进行清洗,通过图形化进行有效的表达,能
够更加简洁高效的观看到某些数据得不到的信息,帮助我们发现某些数据寻找
不到的特征和规律。
Pyecharts是一个用于生成ECharts图表的类库。实际上就是ECharts与
Python的对接,提供直观,交互丰富,可以高度个性化制定的数据可视化图表。
本项目是针对中国水果交易网爬取的数据进行数据可视化分析,观察其数
据的变化,分析其数据走向。
2.3.4数据清洗技术
在本项目中数据清洗主要利用python编程语言中的pandas库。
Pandas是一个免费的开源的第三方python库,是python数据分析必不可
少的工具之一,pandas是Python编程语言的核心数据分析支持库,提供了快速、
灵活、明确的数据结构,目的在于可以简单、直观地处理关系型、标记型数据。
它可以为python提供了高性能,和易于使用的数据结构像Series结构和
DataFrame结构。
在本项目中使用pandas库主要是为了清洗数据,对数据进行分组,求和等
5
湖南商务职业技术学院毕业设计
操作,然后找出符合要求的数据,让数据最后能够符合作图的要求。
3数据采集
针对中国水果采集网的相关数据进行采集,使用了python编程语言和第三
方库xpath爬虫库进行数据爬取采集。通过解析网站信息,获得网站信息,并
通过pandas将数据转成DataFrame,再存成csv文件,最后存到MySQL数据库
中。
3.1采集页面分析
通过观察图3-1其中的URL为:
(“/market?page=1”),与图3-2的URL相比较
(“/market?page=2”)可以发现只有URL的最后一个数
字发生改变。
图3-1第一页URL
6
湖南商务职业技术学院毕业设计
图3-2第二页URL
按F12调出开发者工具,刷新页面,可以发现该页面是GET请求,如图3-3
所示,利用全局搜索工具定位到所需数据位置,点击开发者工具中的Network
找到网页URL,然后选择headers,并找到User-Agent(如图3-4)设置为请求
头。
图3-3开发者工具GET
7
湖南商务职业技术学院毕业设计
图3-4网页代码User-Agent
3.2字段分析
通过开发者工具,我们可以确定需要爬取的有关数据有:水果的产品/品种、
水果的所在产地、水果的价格、水果的添加时间。通过分析可知,所有爬取的
每条数据都在class="market-tableclearFlo"中(如图3-5所示),使用xpath
定位到数据所在位置,通过xpath的路径:‘//div[class="market-table
clearFlo"]/ul/a’就可以挖掘出每个页面的每条数据。
图3-5网页源代码
3.2.1产品/品种字段分析
打开开发者工具,分析水果行情的“产品/品种”在ul标签下的a标签的
第一个li[@class="list1"]上,使用xpath定位“产品/品种”的路径:
“li[@class="list1"]/text()”定位到后保存到变量product中(如图3-6)
得到数据(如图3-7)。
8
湖南商务职业技术学院毕业设计
图3-6‘产品/品种’xpath查询代码
图3-7‘产品/品种’数据
3.2.2所在产地字段分析
分析水果行情的“所在产地”都在ul标签下的a标签的第二个
li[@class="list2ellipsis"]上,使用xpath定位“所在产地”的路径:
“li[@class="list2ellipsis"]/text()”定位到后保存到变量
product_place中(如图3-8)得到数据(如图3-9)。
图3-8‘所在产地’xpath查询代码
9
湖南商务职业技术学院毕业设计
图3-9‘所在产地’数据
3.2.3价格分析
分析水果行情的“价格”都在ul标签下的a标签的第3个
li[@class="list3"]上,使用xpath定位“价格”的路径:“li[@class="
list3"]/text()”定位到后保存到变量price中(如图3-10)得到数据(如图
3-11)。
图3-10“价格”xpath查询代码
图3-11“价格”数据
10
湖南商务职业技术学院毕业设计
3.2.4添加时间字段分析
分析水果行情的“添加时间”都在ul标签下的a标签的第4个
li[@class="list6"]上,使用xpath定位“添加时间”的路径:“li[@class="
list6"]/text()”定位到后保存到变量date中(如图3-12)得到数据(如图
3-13)。
图3-12“添加时间”xpath查询代码
图3-13“添加时间”数据
3.3编程实现
项目使用的是pycharm程序,针对中国水果交易网的数据,用python程序
开发,爬虫代码基于xpath,利用xpath方法进行网页数据位置定位,有效的查
找节点位置。借助这些完成网页数据的的http请求,响应,解析和存储。
代码实现如下(图3-14、图3-15):
11
湖南商务职业技术学院毕业设计
图3-14编程代码一
图3-15编程代码二
4数据清洗与处理
在当今这个时代,每时每刻都会有大量的数据出现,这些数据不是可以直
接使用的,需要对数据进行重新的审查和校验,目的在于删除重复的信息、纠
正存在的错误等等,所以数据的清洗对我们爬虫爬取下来的数据来说是必不可
少的。数据清洗从字面意思上来看就是把“脏”的“数据清洗干净”,其中数
据清洗的主要类型包括:残缺数据、错误数据、重复数据。
4.1数据清洗
第一步部署环境,导入分析的包和数据。通过pandas库读取我们需要的数
12
湖南商务职业技术学院毕业设计
据,利用pd.read_csv来读取csv文件。这里我们可以观察到数据(图4-1)需
不需要进行数据清洗,有没有脏数据。
图4-1数据清洗准备页面
通过这里的数据可以发现,爬取的数据存在一些不统一的情况,这会对后
续的数据处理造成影响。其中存在误差的字段是product和price两个字段。
首先,在price中出现多种单位(/件、/斤、/箱等),在确保数据量足够
的情况下,我们可以利用panda的索引特性将元/斤的数据保存下来,将其他不
是元/斤的数据删除。(如图4-2)
在product中出现非水果字段(其他),这种字段会影响数据的准确性,
所以需要将product等于其他的行删除,只保留正确的水果名称。(如图4-2)
只保留字段price的纯数字字段,然后保存完毕的数据存入新表中(如图
4-3)
13
湖南商务职业技术学院毕业设计
图4-2数据清洗完成界面一
图4-3数据清洗完成界面二
4.2数据储存
本次项目的数据存储是通过MySQL数据库的文件存储方式进行存储。将爬
14
湖南商务职业技术学院毕业设计
取的数据通过Pandas的“DataFrame.to_csv()”按utf-8个字符编码格式存储
成csv文件,在将csv文件保存到MySQL数据库中。
如图4-4所示:
图4-4数据存储为csv页面
MySQL是一个关系的数据库管理系统。关系数据库将数据存储在不同的表中,
而不是将所有数据存储在大型仓库里面,从而提高了速度和灵活性。本次项目
将数据导入Mysql数据库进行保存,这里可以使用一款软件(navicatfor
mysql),您可以在这里使用MySQL导航软件,这是管理MySQL的完美解决方案。
是一个嵌入式方法,可以将CSV表直接存储在MySQL中。
这里我们创建好数据库之后,右击“表”选择“导入向导”(如图4-5),
图4-5导入向导
出现“导入向导”选项框,点击“csv文件”(如图4-6),
15
湖南商务职业技术学院毕业设计
图4-6设置导入格式
然后选择数据源(如图4-7),
图4-7数据源选择
之后就可以一直使用默认选项到步骤5(选择目标表),可以更改数据表的
名字,这里不做修改(如图4-8)。
图4-8修改表名
点击下一步到步骤6,这里可以修改表的类型(如图4-9)。
16
湖南商务职业技术学院毕业设计
图4-9调整表
最后选择开始导入,完成导入,然后打开表看自己导入的数据(如图
4-10)。
图4-10数据存储MySQL页面
5数据统计与分析
5.1数据准备
使用mysql将我们存入数据库frame_produce_analyse的数据表
fruit_analyse1中的数据取出,然后使用juypternotebook对数据数据准备
(如图5-1)。
17
湖南商务职业技术学院毕业设计
图5-1准备数据
本项目爬取“中国水果交易网”,一共爬取500页数据,最终清洗完成的
数据量是8751条,然后将这8751条数据进行数据可视化分析。
18
湖南商务职业技术学院毕业设计
5.2数据展示
5.2.1依据“所在产地”找出产品量最大前10和最少前10的数据统计
根据爬取出来的“所在产地”进行可视化分析,按照每个地区出产的产品
总数进行统计,按照数量最多的地区从大到小排序,最后通过可视化技术对数
据进行图形化展示。统计完图形化展示如下:
图5-2各产地产品总数最多前10个
根据爬取出来的“所在产地”进行可视化分析,按照每个地区出产的产品
总数进行统计,按照数量最少的地区从大到小排序,最后通过可视化技术对数
据进行图形化展示。统计完图形化展示如下:
19
湖南商务职业技术学院毕业设计
图5-3各产地产品总数最少前10个
通过对图形5-2和图形5-3分析可得:
在前10地区产品总数中产品数最多的是渭南市,达到总产数404个。产品
数最少的是云南,产品数仅仅只有1个。
中国31个省(市/自治区)均有水果分布,其中山东省水果产量常年位居
全国首位,陕西、河南、广西、广东水果常年在全国水果产量前5位浮动。像
渭南市,陕西省辖地级市,位于陕西中东部,关中平原东部,属暖温带半湿润
半干旱季风气候,四季分明,光照充足,雨量适宜,盛产水果,如蒲城酥梨、
白水苹果、大荔西瓜等等。
实现代码如下:
图5-2各产地产品总数最多前10个代码
20
湖南商务职业技术学院毕业设计
图5-4各产地产品总数最少前10个代码
5.2.2依据水果品种数据词频进行统计
读取csv表,对总数据中的水果名进行关键词分析形成视觉上的放大显示,
可以从图形化展示中筛选出有用的文本信息,过滤掉大量不需要的信息。
如下图所示:
图5-5水果品种词云图
从图5-5可知,词云图中出现频次最高的桔子,红富士苹果、葡萄、橙子、
梨、西瓜次之。
可以发现果农们主要的水果产品是桔子,因为桔子对气候的要求并不严格,
很多地区都有种植柑橘类水果,而且桔子成熟后,产量也是极大的,价格也便
21
湖南商务职业技术学院毕业设计
宜,深受广大群众的喜爱,这也就成为大多数果农的主要产品之一。
实现代码如下:
图5-6词云图代码
5.2.3依据产水果商品价格进行统计和分析
图5-7不同价格商品的数据页面
上图通过爬取出来的数据的商品价格进行可视化数据分析统计,按照价格
发布数量从大到小进行排序(取前20条数据),然后通过可视化对每条数据的
价格进行统计。
从图4-7中可以得知价格在2元一斤和3元一斤的水果最多。
我们可以看到排名第一的水果数量和排名靠后的水果数量相差很大。第一
的价格只有2元,而最后的有20元,在价格上也相差很大。这就说明在一定程
度上果农们更喜欢种植产量大价格低的水果,像是桔子、苹果之类的。
22
湖南商务职业技术学院毕业设计
实现代码如下图5-8:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 快递运输服务合同范例
- 2025年淮安货运资格证考试有哪些项目
- 地皮房子转让合同范例
- 家具合作生产合同范例
- 彩色印刷合同范例
- 推广投资合同范例
- 2025年石家庄货运从业资格证考试模拟题答案
- 洗衣液批发合同范例
- 承包温泉酒店合同范例
- 唐山师范学院《日语专业认知教育》2023-2024学年第一学期期末试卷
- 家庭教育与孩子的阅读习惯培养
- 沪科黔科版《综合实践活动》5上农业小当家 活动一《花坛小暖棚》课件
- 期末素养展示试卷-2024-2025学年统编版语文三年级上册
- 劳动与社会保障法-001-国开机考复习资料
- 知识图谱构建实践建设方案
- 2024年度跨国业务代理合同3篇
- 内科危重患者的护理
- 纪念抗日救亡一二九运动弘扬爱国精神宣传课件
- 青少年足球培训
- 【MOOC】寄生人体的恶魔-医学寄生虫学-南方医科大学 中国大学慕课MOOC答案
- 大学生心理健康(上海交通大学)知到智慧树章节答案
评论
0/150
提交评论