首页 > 编程知识 正文

python数据可视化网页展示,Python拿什么做可视化界面好

时间:2023-05-06 09:54:59 阅读:141848 作者:3106

1背景分析在互联网技术飞速发展的背景下,网络数据呈现出爆炸式的增长,对数据的应用需要在海量数据中记忆挖掘搜索,搜索引擎结合这一需求应运而生,不仅能检索数据信息,而且人们会看到需要的结果信息数据的处理需要应用爬虫技术收集互联网信息。 作为搜索引擎的重要组成部分,网络爬虫的设计直接影响搜索引擎的质量。 网络爬虫是一种用于从网络上下载和分析网页的程序。 将下载的网页和收集的网页信息保存在本地数据库中,以供搜索引擎使用。 网络爬虫的工作方式是从一个或多个初始页面的链接开始,然后得到链接队列。 随着网页的捕获,从捕获的网页中提取新的链接并继续排队链接,直到爬虫程序满足系统的某些条件为止。

Python语言易于使用,现成的爬虫框架和工具包降低了使用门槛,具体配合正则表达式的运用,使数据捕获工作生动有趣。 在数据检索方面,目前的搜索引擎比最初有了很大的进步,但对于一些特殊的数据检索和复杂的检索,还没有做好。 使用搜索引擎的数据无法满足需求,网络安全、产品调查需要数据支持,但网络上没有现成的数据,需要自己手动搜索、分析、提取,并格式化为满足需求的数据利用网络爬虫可以自动进行数据获取、汇总工作

互联网在我们的生活中越来越重要,网络信息量也越来越大。 研究本课题将有助于我们更好地理解网络爬虫的原理和可视化分析的作用

2需求分析当今社会已经进入信息时代特别是网络购物已成为普遍的购物方式大数据的获取和分析对促进经济发展具有重要意义养成消费者的爱好和习惯有助于及时调整商品的类型和价格。

在我们的日常生活中手机越来越频繁地使用了。 为了更好地把握消费者对手机品牌、价格和店铺的偏好,我们把京东网站的手机产品作为我们的研究目标,通过网络爬虫技术获取网站数据,利用数据库技术存储数据,最后以可视化分析的形式进行我们的最终研究

3详细设计和技术原理项目设计主要分为几个步骤。 根据需求,确定我们应该攀登的网站和数据类型; 通过对使用Python爬虫技术分析网页的数据进行持久化,并将其存储在数据库中,以便随时提取、查询和添加数据。通过对获取的数据进行可视化分析,可以得出我们的结论。 整个过程如图3.1所示:

3.1项目设计流程图3.1网络爬虫技术简介网络爬虫技术,又名“网络蜘蛛”,是指按照既定程序自动获取网页信息和脚本的技术。 在互联网中可以帮助搜索引擎下载各种信息资料,依次进行数据的收集和分析处理。 最后完成数据的统一存储。 当程序正常运行时,爬行动物从一个或多个初始URL下载web内容,并使用搜索方法和内容匹配方法准确“捕获”网页中所需的内容,同时爬行动物不断从网页中获取新的内容当爬行动物搜索到的信息满足停止条件时,搜索会自动停止。 此时,进入自动检索数据的过程,通过建立索引妥善保存数据,用户可以根据自己的实际需求随时提取和浏览数据库中的数据。

基于Python的网络爬虫技术由于使用Python编写程序,可以抛弃传统沉重的IDE,只需一个文本编辑器就能基本完成网络爬虫技术功能的开发,为技术人员的编程工作提供了很大的便利。 除此之外,Python本身还具有比较完善的爬虫框架,支持信息数据的快速挖掘、提取和处理等程序任务。 通过充分发挥Python强大的网络能力,即使面对海量的信息数据检索要求,只需编写少量的代码就能有效地利用网页下载及其网页分析库,准确地解读和表达每个网页的标签,并进行抓取

4功能实现本项目以手机为例,对京东商城50多个手机品牌(华为、Apple、小米、OPPO、VIVO……)进行数据获取,获取商品品牌、商品名、售价、店铺信息、评价在数据分析阶段,从多个角度对获取的数据进行了可视化分析,并得出了结论。

4.1页面分析4.1.1根据网址搭建注册京东网站,搜索关键词“手机”,返回的搜索结果显示有83万件商品,但页面100页,每页只有60件商品。 这是因为京东网站的反爬虫机制,无法显示所有的商品。 为了得到更多的数据量,采用了用二次关键词进行检索的方式。 在图4.1中,“华为手机”、“苹果手机”等品牌一栏中都有所有的手机品牌信息,可以大幅增加数据量。

图4.1在京东网站的商品列表页面上构建URL地址。 请确认搜索2级关键字后的网站地址。 https://search.jd.com/search? keyword=手机wq=手机ev=exbrand_华为(HUAWEI ) ^。 此时的网站看起来很复杂。 图中的汉字已经重新编码,需要简化处理。 简化构建的URL如下所示。

https://search.jd.com/Search? ’parse.urlencode (keyword ) ev=exbrand_%s ) )华为) enc=utf-8 ) ) page=%s ) 2n

-1)
使用urlencode将keyword转码成可识别的url格式,enc以utf-8方式编码,并得传入对应page,得到完整的url。Keyword处代表关键词“手机”, exbrand后面代表的是二级关键词,如“华为(HUAWEI)”。另外京东网站的page变化规律是n2-1。这样就构建出我们的URL地址。

4.1.2 网页分析

通过分析网页的元素,可以找到商品列表在good-list中,继续往下分析可以找到商品名称、手机价格、评价量、店铺信息、图片地址、商品地址等数据。首先导入bs4包,然后就可以使用BeautifulSoup库了,通过使用BeautifulSoup提供的强大的解析方法,即可解析出网页中我们想要的数据。

图4.2 网页审查元素页面 4.2 数据库存储

MySQL是一种关系型数据库,关系型数据库最重要的概念就是表,表具有固定的列数和任意的行数,在数学上称为“关系”二维表是同类实体的各种属性的集合,每个实体对应于表中的一行,在关系中称为元组,相当于通常的一条记录,表中的列属性,称为Field,相当于通常记录中的一个数据项,也叫做列、字段。
首先,打开数据库连接之前,一定保证打开MySQL服务,否则就会出现连接失败的情况。Navicat for MySQL是一款强大的MySQL数据库管理和开发工具,它为专业开发者提供了一套强大的足够尖端的工具,对于数据库的可视化是很方便简洁的。然后,我们要设置好数据库连接的相关配置,以便于我们可以在Python中成功连接数据库,包括数地址、端口号、用户名、密码,具体的配置信息如图4.3所示:

图4.3 数据库连接配置信息

最后,在数据库中创建表格,用来存储数据。数据库建表语句如图4.4所示。我们建立的商品信息表包含8列,分别是商品ID、手机品牌、商品名称、价格、店铺信息、评论量、图片地址、商品详情页地址。并且以京东的商品ID为主键,这样做可以避免因为商品名称的重复导致的保存失败的情况,每一件商品的ID在京东商城里都是唯一的。

图4.4 数据库建表语句 4.3 爬取数据过程

在完成上述工作及配置之后,我们就可以正式的编写代码来爬取数据了。将我们的爬虫伪装成浏览器去获取网页,然后对网页解析,得到我们需要的数据,最后将数据存储到MySQL数据库中。为了保证报告的美观和质量,在此部分将不再展示代码,全部的源代码见附录。最终得到的数据如图4.5所示:

图4.5 MySQL数据库中的数据 5 数据分析

在得到数据之后,我们对数据进行了全方面多维度的分析,在原有数据的技术上进行深度挖掘,具体的过程如下。

5.1 数据的预处理

从图5.1中可以看出,由于我们直接得到的数据里面的数据类型以及可用的信息比较少,品牌名称比较混乱复杂,商品名称较长无法知道商品具体属性,评论数量单位不统一等,这些问题的存在会直接影响我们的分析结果。

图5.1 原始数据图

为了更方便我们的处理,在可视化分析之前,我们对数据进行了预处理操作,如图5.2所示。首先对于手机品牌,删除无用的后缀括号里的内容,使名称看上去更加简洁。其次对评论量进行了处理,将带单位“万”的数据都进行了单位的统一,方便我们后续计算使用。然后我们利用关键词检索的方式,对商品类型进行了划分,判断出它们是属于手机还是配件,是新手机还是二手手机,这些对于后续的统计计算结果有着非常大的影响。最后,我们对手机类型进行了划分,分为智能手机、商务手机、老年手机、5G手机、学生手机,在后续的处理中,我们会对不同类型的手机价格及购买人数进行可视化分析。

图5.2 预处理之后的数据

我们主要从三个大角度对数据进行可视化分析:店铺销量分析、品牌商品分析、手机类型分析。由于京东网站上不显示具体的销量,这里我们把评论量近似等于购买人数,后面不再进行说明。

5.2 店铺销量分析 5.2.1 不同店铺销量分析

我们选取了销量前7的店铺进行了对比分析,从图5.3中可以看出,“荣耀京东自营店”、“小米京东自营旗舰店”、“华为京东自营官方旗舰店”、“Apple产品京东自营旗舰店”的销量占比比重较大,也反映出华为、小米、Apple的手机产品在市场中占有比较大的份额。

图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所示,商务手机相比于其他手机要贵很多,均价达到近1万元;其次是5G手机,随着近年的快速发展,其价格相比于普通的智能手机要高一点,达到了近5000元;另外,老年手机和学生手机因为功能较少,配置较低,因此它的售价也比较低,只有500元左右。

图5.8 不同手机类型平均价格分析 5.4.2 不同手机类型购买人数占比分析

从图5.9中可以看出,有80.8%的人选择购买普通智能手机;5G手机的占比还比较少,只有6%;老年手机占比11.8%。

图5.9 不同手机类型购买人数占比分析 6 结论

通过几周对Python爬虫以及数据可视化分析的学习,我们在这过程中查阅了大量的资料,经过多次实验分析,最终形成我们的项目报告。主要实现了对京东商城中手机商品数据的爬取以及数据分析工作,掌握了Python常用包函数以及数据库的使用方法。总体而言,网络编程这门课让我们学到了很多的东西,网络在我们身边无处不在,学会网络编程对于我们日常的学习和工作都有很大的帮助。
由于时间有限,我们的项目还有一定的不足,后续有机会将会继续改进。

有问题可以随时留言交流

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。