python如何实现数据可视化,python炫酷的数据可视化界面
1背景分析在互联网技术飞速发展的背景下,网络数据呈现爆炸式增长,数据的应用需要在海量数据中进行内存挖掘和搜索。结合这种需求,搜索引擎应运而生,它不仅可以检索数据信息,而且人们会看到所需的结果。数据的处理需要应用爬虫技术来收集互联网信息。作为搜索引擎的重要组成部分,网络爬虫的设计直接影响搜索引擎的质量。网络爬虫是一个用来从网络上下载和分析网页的程序。将下载的网页和收集的网页信息保存在本地数据库中,以供搜索引擎使用。网络爬虫的工作方式是从一个或多个初始页面的链接开始,然后获取链接队列。随着网页的捕获,从捕获的网页中提取新的链接,并且链接被排队,直到爬虫满足系统的一些条件。
Python语言简单易用,现成的爬虫框架和工具包降低了使用门槛,正则表达式的具体应用让数据抓取工作变得生动有趣。在数据检索方面,目前的搜索引擎相比原来有了很大的进步,但是对于一些特殊的数据检索和复杂的检索,还没有做好。使用搜索引擎的数据不能满足需求,网络安全和产品调查需要数据支持。但是网络上没有现成的数据,需要人工搜索、分析、提取、格式化数据才能满足需求。网络爬虫能够自动获取和汇总数据。
互联网在我们的生活中变得越来越重要,网络信息量也在不断增加。这项研究将有助于我们更好地理解网络爬虫的原理和视觉分析的作用。
2需求分析现在社会已经进入信息时代,尤其是网购已经成为一种普遍的购物方式。大数据的获取和分析对于促进经济发展具有重要意义。培养消费者的爱好和习惯,有助于及时调整商品的种类和价格。
手机在我们的日常生活中使用越来越频繁。为了更好地掌握消费者对手机品牌、价格和店铺的偏好,我们以JD.COM网站的手机产品为研究目标,通过网络爬虫技术获取网站数据,通过数据库技术存储数据,最后以可视化分析的形式进行最终研究。
3详细设计和技术原理项目设计主要分为几个步骤。根据需求,确定我们要爬的网站和数据类型;通过使用Python爬虫技术对网页的数据进行分析、持久化,并存储到数据库中,以便随时提取、查询和添加数据。通过对获得的数据进行可视化分析,我们可以得出我们的结论。整个过程如图3.1所示:
3.1项目设计流程图3.1网络爬虫技术简介网络爬虫技术又称“网络蜘蛛”,是指按照既定程序自动获取网页信息和脚本的技术。在互联网中,它可以帮助搜索引擎依次下载各种信息、收集和分析数据。最后完成数据的统一存储。当程序正常运行时,爬虫从一个或多个初始URL下载网页内容,利用搜索方法和内容匹配方法,在网页中准确“捕获”所需内容。与此同时,爬虫不断从网页中获取新的内容。当爬虫搜索到的信息满足停止条件时,搜索会自动停止。此时进入数据自动检索的过程,可以通过建立索引的方式对数据进行适当的保存,方便用户根据实际需要随时提取和浏览数据库中的数据。
基于Python的网络爬虫技术,因为使用Python编写程序,可以抛弃传统的笨重的IDE。只需要一个文本编辑器就可以基本完成网络爬虫技术功能的开发,为技术人员的编程工作提供了极大的便利。此外,Python本身有一个比较完整的爬虫框架,支持信息数据的快速挖掘、提取和处理等程序任务。通过发挥Python强大的网络能力,即使面对海量的信息和数据检索需求,也只需要少量的代码就能有效地利用网页下载及其网页分析库,准确地解读和表达各个网页的标签,并对其进行抓取。
4功能实现本项目以手机为例,获取JD.COM商城50多个手机品牌(华为、苹果、小米、OPPO、VIVO……)的数据,获取商品品牌、商品名、售价、店铺信息、评价。在数据分析阶段,对获得的数据进行多角度的可视化分析,得出结论。
4.1页面分析4.1.1根据网址搭建一个注册的JD.COM网站,搜索关键词“手机”,返回的搜索结果显示有83万条,但是有100个页面,每页只有60条。这是因为JD.COM网站的反爬虫机制不能显示所有产品。为了得到更多的数据,采用了用二级关键词搜索的方法。在图4.1中,华为手机、苹果手机等品牌一栏中有手机的所有品牌信息,可以大大增加数据量。
图4.1在JD.COM网站的产品列表页面上建立URL地址。请在搜索二级关键词后确认网站地址。https://search.jd.com/search?关键词=手机wq=手机ev=exbrand_ Huawei(华为)。这个时候的网站看起来很复杂。图片中的汉字已经重新编码,需要简化。简化的URL如下所示。
https://search.jd.com/Search?解析。urlencode(keyword)ev=ex brand _ % s))华为)enc=utf-8)) page=%s) 2n
-1)
Urlencode用于将关键字转码为可识别的url格式,enc采用utf-8模式编码,必须传入相应的页面才能得到完整的url。关键字代表关键字“手机”,二级关键字如“华为”站在exbrand之后。另外,JD.COM网站的换页规则是n2-1。这构建了我们的URL地址。
4.1.2网页分析通过分析网页的元素,可以在good-list中找到商品列表。如果继续分析,可以找到商品名称、手机价格、评价金额、店铺信息、图片地址、商品地址等数据。首先导入bs4包,然后就可以使用BeautifulSoup库了。通过使用BeautifulSoup提供的强大解析方法,我们可以在网页中解析出我们想要的数据。
图4.2网页审核元素page 4.2数据库存储MySQL是一个关系数据库。关系数据库最重要的概念是表,它有固定数量的列和任意数量的行。数学上叫“关系”。二维表是同类实体的各种属性的集合。每个实体对应表中的一行,在关系中称为元组,相当于一条普通记录。表中的列属性称为字段,相当于普通记录中的数据项。
首先,在打开数据库连接之前,一定要打开MySQL服务,否则连接会失败。Navicat for MySQL是一个强大的MySQL数据库管理和开发工具。它为专业开发人员提供了一套强大而精密的工具,对于数据库可视化来说既方便又简洁。然后,我们需要设置数据库连接的相关配置,这样才能在Python中成功连接到数据库,包括地址数、端口号、用户名和密码。具体配置信息如图4.3所示:
图4.3数据库连接配置信息最后,在数据库中创建一个表来存储数据。数据库表构建语句如图4.4所示。我们的商品信息表包含8列,分别是商品ID、手机品牌、商品名称、价格、店铺信息、评论量、图片地址、商品详情页地址。并以JD.COM的商品ID作为主键,可以避免因商品名称重复而导致保存失败。每个商品的ID在JD.COM商城都是唯一的。
图4.4数据库建表语句4.3数据抓取流程完成上述工作和配置后,我们就可以正式编写代码抓取数据了。我们将自己的爬虫伪装成浏览器来获取网页,然后解析网页获取我们需要的数据,最后将数据存储在MySQL数据库中。为了保证报表的美观和质量,本节不展示代码。所有源代码见附录。最终数据如图4.5所示:
图4.5 MySQL数据库中的数据5数据分析获取数据后,我们对数据进行了全方位多维度的分析,并对原始数据技术进行了深入挖掘。具体流程如下。
5.1数据的预处理从图5.1可以看出,这些问题的存在会直接影响我们的分析结果,因为我们直接得到的数据中的数据类型和可用信息相对较少,品牌名称比较混乱复杂,长的商品名称无法获知商品的具体属性,评论单元数量也不统一。
图5.1原始数据图为了方便我们的处理,我们在可视化分析之前对数据进行了预处理,如图5.2所示。首先,对于手机品牌,删除无用的后缀括号,让名字看起来更简洁。其次,对评论量进行处理,将单位为“万”的数据按单位统一,方便我们后续的计算和使用。然后我们用关键词搜索对商品的类型进行分类,判断是属于手机还是配件,是新手机还是二手手机,对后续的统计计算结果影响很大。最后,我们把手机的类型分为智能手机、商务手机、老年手机、5G手机、学生手机。在后续处理中,我们会直观分析不同类型手机的价格和购买人数。
图5.2预处理后的数据。我们主要从店铺销售分析、品牌商品分析、手机类型分析三个角度对数据进行可视化分析。由于JD.COM的网站上没有显示具体的销量,所以在这里,评论的数量大约等于购买者的数量,后面就不解释了。
5.2店铺销售分析5.2.1不同店铺的销售分析我们选取了排名前7的店铺进行对比分析。从图5.3可以看出,荣耀JD.COM自营店、小米JD.COM自营旗舰店、华为JD.COM自营官方旗舰店、苹果JD.COM自营旗舰店的销售额占比很大,这也反映出华为、小米、苹果的手机产品在市场上占有很大份额。
图5.3不同店铺销量分析5.2.2不同店铺平均售价分析
图5.4平均售价8000元以上商铺平均售价分析。由于品牌众多,考虑到报告篇幅的限制,无法一一对比展示所有店铺的平均售价。我们选取平均售价在8000元以上的店铺进行对比分析。从图5.4可以看出,“VERTU官方旗舰店”的手机均价最高,达到近8万元,其他相对高端的手机品牌店的价格也在万元左右。
5.3品牌商品分析5.3.1不同价格区间的购买人数为了更好的看到不同价格区间的购买人数信息,我们将原始数据按照价格进行了分层,500元以下、500-1000元、1000-3000元、3000-5000元、5000元以上。从图5.5可以看出,大多数人选择1000-3000元之间,占比39.55%。只有7.33%的人选择购买5000元以上的手机。
图5.5不同价格区间的购买人数5.3.2不同品牌的平均价格。在图5.6中,我们以柱状图的形式展示了不同品牌的均价,从中可以看出,在均价3000元以上的手机品牌中,Vertu品牌均价最高,达到近6万元,其他品牌均价在1万元左右;均价1000-3000元的手机品牌差距不是特别明显。黑鲨、华为、OPPO、iQOO、一加均价较高。
图5.6不同品牌的平均价格5.3.3商品价格与购买人数的关系。散点图数据量大,在反映两个变量之间的关系方面比其他图形更有优势。为了更直观的看到商品价格和购买人数之间的关系,我们用散点图的形式来表示。
从图5.7可以看出,当排除个别品牌或店铺的影响时,从整体分布来看,商品售价越低,购买者越多;商品价格越高,购买者越少。所以根据这些,可以帮助商家及时调价,增加销量。
图5.7商品价格与购买人数关系散点图5.4手机类型分析5.4.1不同手机类型均价分析目前,市场上充斥着各种类型的手机产品,尤其是近年来,“5G手机”成为大众追捧的热点。因此,我们对不同类型的手机进行了对比分析。如图5.8所示,商务手机比其他手机贵很多,均价近万元;其次,5G手机,随着近几年的快速发展,其价格比普通智能手机高一点,达到近5000元;此外,老年人和学生用手机由于功能较少,配置较低,所以价格相对较低,只有500元左右。
图5.8不同手机类型平均价格分析5.4.2不同手机类型购买者比例分析从图5.9可以看出,80.8%的人选择购买普通智能手机;5G手机占比还是比较小的,只有6%;老年人用手机占11.8%。
图5.9不同类型手机的购买者比例分析6结论经过几周对Python爬虫的研究和数据可视化分析,我们在这个过程中查阅了大量的资料,经过多次实验和分析,最终形成了我们的项目报告。主要实现了JD.COM商城手机商品数据的抓取和数据分析,掌握了Python常用的打包功能和数据库的使用方法。总的来说,网络编程这门课教会了我们很多,网络在我们身边无处不在。学习网络编程对我们的日常学习和工作有很大的帮助。
由于时间有限,我们的项目还存在一些不足,有机会我们会继续完善。
如果你有任何问题,请随时留言。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。