基于Python的孔夫子旧书网热销书籍爬虫与可视化分析报告

news2024/11/16 2:56:55

摘要随着社会的不断发展,数据时代的到来,数据的背后是什么,数据有什么用,怎么用庞大的数据来呈现出数据的价值,让我们一起去揭开它神秘的面纱。

 以孔夫子旧书网热销书籍5本图书数据爬取为例,介绍网络爬虫的基本原理,Python环境的搭建,PyCharm request pyechart等的爬虫数据的运用,把获取到的数据进行清洗、整合,储存数据到MySQL,然后进行数据可视化的呈现,简单对呈现的图进行数据分析。

1系统开发背景

1.1 背景

在大数据时代,人类社会的数据正以前所未有的速度增长。数据蕴含着巨大的价值,无论是对个人工作、生活,还是对企业未来的发展和创新商业模式,都有着很大的帮助。充分挖掘数据潜在价值,能帮助人们找到更合适的合作对象、更便宜的生活用品,也能帮助企业找到更好的细分市场,有针对性地为企业日后的发展提供数据支撑。数据让人们更好地掌握市场动向,更好地应对市场,产生新的合理的决策。

数据背后所隐藏的巨大商业价值正开始被越来越多的人所重视,那么数据从何而来?可以从网上找数据,但是人工提取数据效率太低,从经济角度也不可行。购买数据是一 个办法,但是目前公开交易的数据少之又少,很难与多样化的数据需求匹配。因此,对很多人和企业来说,如果想获取全面、有效、 准确的数据, 编写爬虫抓取数据是一种明智之选

1.2 目标及意义

目标:数据来源于孔夫子旧书网热销书籍官网的公开信息,爬取图书热销榜公示信息数据,主要包括书名、评论内容、评论数据、价格的信息。

意义:

  1. 指示热销榜图书评论条数的排名。
  2. 指示热销榜图书词频分析
  3. 指示热销榜图书评论数据分布
  4. 指导我们在看图书和理解书中内容的方法和建议。

2系统相关技术介绍

本文主要是基于python语法和其强大的库来实现系统的多种功能。

2.1 Python语言

  Python是一种计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。

  Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。

2.2 request库

Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库,是网络爬虫中及其重要的组成成分。

2.3 BeautifulSoup

BeautifulSoup是用来从HTMLXML中提取数据的Python库。

对于不具备良好格式的 HTML 内容,lxml 提供了两个有用的包:lxml.html 模块和 BeautifulSoup 解析器。

2.4 pyecharts

echarts是一个使用 JavaScript 实现的开源可视化库,因为其着良好的交互性,精巧的图表设计,受到众多开发者青睐。Python 是一门富有表达力的语言,在数据处理方面很在行。当Python数据分析遇上echarts数据可视化相遇时,碰撞出了新的Python可视化库,于是Pyecharts诞生了。Echarts是百度开源的一个数据可视化JS库,Pyecharts 则是是一个用于生成 Echarts 图表的类库。使用Pyecharts时,我们可以使用Python来调用里面的API,因此Pyecharts使用起来更简单,绘图的效果更好,还能实现动态交互。

2.5 json

JSON 是存储和交换文本信息的语法,类似 XML。

JSON 比 XML 更小、更快,更易解析。

JSON 易于人阅读和编写。

C、Python、C++、Java、PHP、Go等编程语言都支持 JSON。

2.6 WordCloud库

wordcloud库,可以说是python非常优秀的词云展示第三方库。词云以词语为基本单位更加直观和艺术的展示文本。

wordcloud把词云当作一个对象,它可以将文本中词语出现的频率作为一个参数绘制词云,而词云的大小、颜色、形状等都是可以设定的。

2.7pymysql

 PyMySQL包包含一个纯Python MySQL客户端库。PyySQL的目标是对MySQL LDAP进行替换,并对CPython、PyPy和IrPython进行工作

2.8 jieba库

Jieba库作用:1、利用中文词库,分析汉字与汉字之间的关联几率

2、还有分析汉字词组的关联几率

3、还可以根据用户自定义的词组进行分析。是做词云图的关键。

3系统分析与设计

3.1 可行性分析

3.1.1 技术可行性分析

本人掌握python、sql等数据处理技术,并且熟练使用mySql数据库、pycharm集成开发环境,并且在互联网上比较容易获取找到相关技术文档,因此技术思路清晰。

3.1.2 数据可获得性分析

本文分析孔夫子旧书网热销榜图书数据,数据来源真实可靠而且可以轻松获取。

3.2 各模块设计

3.2.1 数据获取方法

数据集来源孔夫子旧书网热销榜图书数据,通过python中的bs4和json获取html中的数据。

3.2.2 数据预处理设计

对于爬取数据量不大的内容可以使用pymysql库来存储数据,将其存为sql文件格式,再对数据进行数据预处理,也可通过代码进行数据预处理。

3.2.3 数据分析思路设计

通过对孔夫子旧书网热销榜图书数据爬取字段分析,可提供的数据分析如下:

热销榜图书评论条数的排名分析。图书评论价格分析。热销榜图书词频分析。热销榜图书评论数据分布分析。

4.1.1数据获取

打开网页获取想要爬取的数据标签定位

4.1.2获取评论数据url

打开五本热销书籍链接可以知道,评论数据在开发者工具--网络--xhr中如下图可知,评论数据为post请求,所以post请求的构建是获取url的重点

4.1.3数据存储与清洗

在获取链接,爬取数据后,保存的为json格式数据,所以要对json格式的数据进行提取和清洗,使用json.loads方法,将json数据转换成字典类型,通过键值对提取里面的评论信息。

部分代码截图:

提取评论数据后,添加到数据库,清洗后的数据如下图

部分代码截图:

5.1词频图的数据分析

在做词云图之前,必须对先做词频分析,利用jieba库进行分词处理,去掉一些停用词和无用词,在进行词频统计。具体步骤如下:

  1. 统计词频并将相关数据封装入字典

先从数据库读取评论数据,存为txt格式,方便做jieba分词

  1. 统计好词频之后,我们要使用停用词和一些无意义的词语去掉,这样做出来的词云图才有意义,使用for循环去提取字典数据,在存为列表数据,部分代码如下:

最后生成了一个列表数据,这个词频的列表数据,就可以用来做词云图

6.1 数据可视化

图书评论价格分析。从数据库中查询图书价格数据,然后通过fetchall函数,转换成元组数据,在通过for循环,把元组输出成列表,在调用pyecharts的bar模块,将列表数据以柱形图的形式呈现出来。结果如下图:

部分代码如下:

热销榜图书词频分析。经过词频数据分析处理后的列表数据,在调用pyecharts的wordcloud模块,将列表数据以词云图的形式呈现出来,字体越大,颜色越深的代表词频越高,如下图:

部分代码如下:

热销榜图书评论数据分布分析。从数据库中查询图书评论数据,然后通过fetchall函数,转换成元组数据,在通过for循环,把元组输出成列表,在调用pyecharts的Radar

模块,将列表数据以雷达图的形式呈现出来,每一个坐标点对应一个方面的数据,能从不同的角度去分析评论数据的分布特性,效果如下图:

部分代码如下:

最后在将三个图进行结合一起,用pyecharts的page进行实例化,将三图在一个HTML页面上展示,体现数据的可读性和美观度。效果如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2034296.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

免费录屏软件之QQ

录屏太简单了 1、首先下载QQ 2、在随便打开个对话框,再操作1、2步骤即可 3、嫌打开对话框麻烦? 4、打开QQ后直接按下CtrlAltR即可录屏,连对话框都不用打开了,按完快捷键后效果如下: 5、点击右下角开始录屏即可

想在官网中放可以720°交互的3D模型,怎么做?

在官网中放置可以交互的3D模型,可以通过以下步骤实现: 一、准备3D模型 1、设计3D模型: 使用专业的3D建模软件(如Blender、3ds Max、Maya等)制作符合需求的3D模型。确保模型的尺寸、比例和细节都符合实际要求。 2、…

斜坡函数在PLC中的应用

最近在做项目的时候用到了通过模拟量输出控制设备速度快慢。因为之前大多数是通过端子控制或者是总线的控制方式来控制速度,因此首先尝试了端子控制模拟速度输出。但是由于加速度过大导致设备启动后会快速加速,停止时也会快速减速,不够平滑。…

数据库:数据查询

1 实验目的 掌握SQL语言的数据查询语句,具体包括: SELECT语句的基本用法 使用WHERE子句进行有条件的查询 使用IN,NOT IN,BETWEEN等谓词查询 利用LIKE子句实现模糊查询 利用ORDER子句为结果排序 用…

SQL Server 2022的游标

《SQL Server 2022从入门到精通(视频教学超值版)》图书介绍-CSDN博客 《SQL Server 2022从入门到精通(视频教学超值版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) 游标是SQL Serv…

使用 CSS 打印样式为 Web 页面设置专业的打印机效果

对于有打印需求的网页,特别是文章的详情页,需要设置专门的打印样式来适配页面。CSS 打印样式允许你为网页设置专门用于打印的样式。文本就是专门介绍如何使用 CSS 打印样式为 Web 页面设置专业的打印机效果。 media print 通过使用 media print 媒体查…

【轨物洞见】当下是技术创新的好时机

“创新之父”熊比特认为,创新是一个经济学名词,是一种新的生产函数,即通过重新组合从未有过的生产要素来引入现有的生产过程,判断创新的关键是有没有创造价值。熊比特认为,创新是经济发展的根本动力,它包括…

[LitCTF 2023]debase64-入土为安的第十八天

点进去sub_401520(v15, (int)v4) if ( !*a1 )return 0;v2 a1 4;v3 a1;v4 0;v5 0;v13 0;while ( 1 ){v14 -1;for ( i 0; i ! 64; i ){while ( byte_404000[i] ! *v3 ){if ( i 64 )goto LABEL_7;}LOBYTE(v14) i;} LABEL_7:LOBYTE(i) 0;do{while ( byte_404000[i] ! a1…

【三维重建】SpotlessSplats:去除瞬态干扰物的三维高斯喷溅(3DGS)

代码:https://spotlesssplats.github.io 论文:https://arxiv.org/pdf/2406.20055 来源:DeepMind,多伦多大学,斯坦福大学,西蒙弗雷泽大学 提示:关注B站【方矩实验室】,查看视频讲解…

【SQL】有趣的电影

目录 题目 分析 代码 题目 表:cinema -------------------------- | Column Name | Type | -------------------------- | id | int | | movie | varchar | | description | varchar | | rating | float | -…

JDBC如何避免SQL注入

JDBC如何避免SQL注入 一 . 什么是SQL注入 SQL注入(SQL Injection)是一种代码注入技术,它允许攻击者将或“注入”恶意的SQL命令到后端数据库引擎执行。这些恶意的SQL命令可以执行未授权的数据库查询、修改数据、管理数据库服务器上的文件系统…

2024.8.12 作业

TCP服务器端代码实现 #include <myhead.h> #define SER_PORT 6666 #define SER_IP "192.168.254.129" int main(int argc,const char *argv[]) {//1.创建套接字文件int sfd socket(AF_INET,SOCK_STREAM,0);if(sfd-1){perror("socket error");retur…

Echarts-GL和three.js对比,实力在一个档次么?

我们都知道echarts非常好用&#xff0c;简单配置就可以实现各式各样的图表下过&#xff0c;echarts有一个扩展叫echarts-GL&#xff0c;可以实现三维图表效果&#xff0c;那么和three.js相比呢&#xff1f; 一、Echarts-GL的来源 ECharts-GL 是百度开源的一款基于 WebGL 的数据…

PMP和PMI-ACP 考哪个证书好,还是两个都考?

PMP是一个由美国项目管理协会&#xff08;PMI&#xff09;发起的项目管理专业人士或专家资格认证&#xff0c;它评估从业者领导和引导项目团队的能力。PMP在中国早已推广&#xff0c;基于系统项目管理的框架体系&#xff0c;是项目管理领域的基本要求。这个证书知名度很高&…

为什么要加强产供协同管理?可以从哪些方面提高产供协同效率?

随着市场竞争的加剧和客户需求的多变&#xff0c;企业之间的竞争已经转变为供应链之间的竞争。在这一背景下&#xff0c;产供协同管理显得尤为重要。本文将概述加强产供协同管理的必要性&#xff0c;探讨其在提升企业响应速度、优化库存、增强客户满意度和降低成本方面的作用&a…

【数学建模备赛】Ep02:TOPSIS模型(优劣解距离法)

文章目录 一、前言&#x1f680;&#x1f680;&#x1f680;二、TOPSIS法&#xff1a;☀️☀️☀️1. 引入&#xff08;综合类评价问题&#xff09;1.1 分析层次分析法的局限1.2 小例子①给出评分类比权重②构造计算评分的公式③解释④拓展问题&#xff08;增加指标个数&#x…

JVM知识总结(类加载器)

文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 类加载器 Bootstrap引导类加载器 引导类加载器也被称为启动类加载…

计算机系统基础知识:数据表示及运算

计算机系统基础知识 1. 计算机系统基本组成2. 数据表示及运算2.1 数据表示进位计数值及其转换机器数和码制定点数和浮点数十进制编码ASCII码汉字编码Unicode 2.2 校验码2.3 逻辑代数及运算2.4 机器数的运算机器数的加减运算机器数的乘除运算浮点运算 1. 计算机系统基本组成 计…

opencv-python图像增强二:图像去雾(暗通道去雾)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、简介&#xff1a;二、暗通道去雾方案简述&#xff1a;三、算法实现步骤3.1最小值滤波3.2 引导滤波3.3 计算图像全局光强 四&#xff1a;整体代码实现五&#xf…

iLight混合点光源 激光与LED技术的结合

51camera机器视觉产品资料查询平台的光源种类比较丰富&#xff0c;今天我们一起来看看其合作厂商iCore的明星产品iLight混合点光源&#xff0c;该产品提供了比LED更高的亮度&#xff0c;作为传统LED和氙气灯的替代品&#xff0c;它将激光和LED技术的结合&#xff0c;提供了长达…