基于大数据爬虫数据挖掘技术+Python的网络用户购物行为分析与可视化平台(源码+论文+PPT+部署文档教程等)

#1024程序员节|征文#

 博主介绍CSDN毕设辅导第一人、全网粉丝50W+,csdn特邀作者、博客专家、腾讯云社区合作讲师、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流

技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。

主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文降重、长期答辩答疑辅导、腾讯会议一对一专业讲解辅导答辩、模拟答辩演练、和理解代码逻辑思路

🍅文末获取源码联系🍅

👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟

2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅

Java项目精品实战案例《100套》

Java微信小程序项目实战《100套》

大数据项目实战《100套》

Python项目实战《100套》

感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人

 系统介绍:

近年来,科技飞速发展,在经济全球化的背景之下,大数据将进一步提高社会综合发展的效率和速度,大数据技术也会涉及到各个领域,而爬虫实现网站数据可视化在网站数据可视化背景下有着无法忽视的作用。管理信息系统的开发是一个不断优化的过程,随着网络大数据时代的到来,管理信息系统与大数据集成为必然。

本次将以网络用户购物行为分析系统和信息管理系统两个方面为切入点,论述了网络用户购物行为分析系统与信息管理系统的意义和内容,以此展开对网站数据可视化的开发与建设的详细分析。从数据挖掘的角度出发,了解信息管理系统的作用,对数据分析的过程以及用处进行更深一步的研究,数据的处理效率,以及具体的应用方向。对于大数据环境下对信息管理系统所带来的影响,将从传统管理信息系统与大数据环境下的管理信息系统进行对比分析,从硬件优化、软件开发,这几个方面来论述网络用户购物行为分析的优势所在,分析网络用户购物行为分析系统在大数据时代发展的变化趋势。并且以网络用户购物行为分析系统信息为例,分析在网站数据可视化的客观需求分析,针对其中的问题网站数据可视化做出一些无论是加强相关政策的立法工作还是建立及时的信息反馈等等的合理化建议,并进行对于未来发展的分析规划。

关键词:网络用户购物行为分析系统

    程序上交给用户进行使用时,需要提供程序的操作流程图,这样便于用户容易理解程序的具体工作步骤,现如今程序的操作流程都有一个大致的标准,即先通过登录页面提交登录数据,通过程序验证正确之后,用户才能在程序功能操作区页面操作对应的功能。

程序操作流程图

      首先前端通过Vue和axios发送HTTP请求到后端的登录接口。在后端接收登录请求的Controller会使用`@RequestParam Map<String, Object> params`来接收前端传递的用户参数,用户名和密码。然后后端根据接收到的参数创建一个查询条件封装对象MyBatis的EntityWrapper用于构建查询条件。接着在业务层,调用相应的service方法来查询数据库中是否存在匹配的用户信息。这个查询方法Login()会将前端传递的对象参数传递到后台的DAO层,进行数据库的交互操作。如果存在符合条件的用户,则会返回相关的用户信息。最后在后端控制器中将查询结果封装成响应体,通过`return R.ok().put("data", userService.selecView(ew))`将用户信息返回给前端。前端收到响应后,可以通过调用Vue、ElementUI等组件来渲染登录结果,例如显示用户信息或者跳转到相应的页面。

系统架构设计

系统架构设计是软件开发过程中至关重要的一环。首先是模型层(Model),模型层通常对应着数据库或者其他数据源,它负责与数据库进行交互,执行各种数据操作,并将处理后的数据传递给控制器层。模型层的设计应该简洁清晰,尽可能减少与视图和控制器的耦合,以提高代码的可维护性和可重用性。

其次是视图层(View)通常是通过网页、移动应用界面或者其他用户界面来展示数据。视图层与用户交互,接受用户的输入,并将输入传递给控制器层进行处理。在MVC三层架构中,视图层应该尽量保持简单,只负责数据的展示和用户交互,不涉及业务逻辑的处理,以保持视图层的清晰度和可复用性,最后是控制器层(Controller),每个层都有特定的职责和功能,通过分层架构设计,实现代码模块化,为软件开发提供了一种有效的架构模式。系统架构如图4-1所示。

详细视频演示

请文末卡片dd我获取更详细的演示视频

功能截图:

      在系统前台首页,调用`$route(newValue)`方法监听路由变化,根据当前的路由地址来确定活动菜单的索引,并且根据路由的哈希部分(即URL的`#`后面的部分)来判断是否需要滚动页面到顶部或者某个特定元素的位置。如果不是首页,会将页面滚动到指定元素处,否则滚动到页面顶部。另外通过`headportrait()`方法用于更新组件渲染点前用户头像。在用户登录后,后端返回了新的用户信息,需要及时更新页面上的用户头像信息。

按照软件工程的流程来说,在系统的详细设计与实现阶段,要把模块、视图、模板进行相应的组合完成一个个所需的功能,此章将会把设计中模块一一说明如何设计和实现的。

5.1 后台用户功能的实现

用户注册,在注册页面通过填写用户账号、用户姓名、性别、电话、头像等信息,进行注册,在登录页面通过填写账号、密码等信息,进行登录,如图5-1、5-2所示。

图5-1 用户注册界面图

5-2 用户登录界面图

在这里,用户能够看到该系统的一些基本功能,成功登录后,用户可以通过当前页面的各个导航进入各功能的页面,然后进行相关操作。系统首页界面如图 5-3所示:

图 5-3系统首页界面 

用户点击电子产品,在电子产品页面的搜索栏输入标题、店名、省份,进行搜索然后可以查看标题、图片、店名、省份、商品评价、价格、优惠等信息如图5-4所示:

5-4电子产品界面图

用户点击用户资料用户资料页面用户可以修改个人信息,也可以修改密码如图5-5所示:

5-5用户资料界面图

5.2 后台管理员功能的实现

管理员登录,通过登录页面填写用户名和密码等信息点击登录操作,如图5-6所示。

5-6管理员登录界面图

管理员登录进入网络用户购物行为分析系统可以查看首页、用户、电子产品、系统简介、用户资料等功能进行详细操作,如图5-7所示。

5-7管理员功能界面图

管理员点击用户;在用户页面输入用户账号、用户姓名进行搜索可以点击添加或删除操作;如图5-8所示。

5-8用户界面图

管理员点击电子产品;在电子产品页面输入标题、店名、省份进行搜索可以点击添加或删除操作;如图5-9所示。

5-9电子产品界面图

管理员点击系统简介;在系统简介页面可以查看标题、副标题、图片1、图片2、图片3如图5-10所示。

5-10系统简介界面图

5.3系统看板展示

网络用户购物行为分析系统展示如图5-11所示。

5-11网络用户购物行为分析系统展示

5.3数据采集

定义一个Scrapy爬虫类`ZhaopinxinxiSpider`,用于爬取指定网站的招聘信息。`name`定义了爬虫的名称,`spiderUrl`指定了目标网站的URL,`start_urls`将目标网站的URL按分号拆分成一个列表,作为爬取的起始URL。`protocol`和`hostname`用于定义协议和主机名,暂时为空。`realtime`用于指定是否实时获取数据,初始化为False。代码如下所示。

class ZhaopinxinxiSpider(scrapy.Spider):
    name = 'zhaopinxinxiSpider'
    spiderUrl = 'https://www.chinahr.com/newchr/open/job/search'
    start_urls = spiderUrl.split(";")
    protocol = ''
    hostname = ''
    realtime = False

使用parse方法中进行一些初始化操作和判断条件。首先,通过urlparse函数解析self.spiderUrl得到URL的协议和主机名,并将其分别赋值给self.protocol和self.hostname。 然后,通过platform.system().lower()获取当前操作系统的名称,并将其转换为小写字母,保存在plat变量中。 接着,判断条件如果不是实时爬取(self.realtime为False)并且当前操作系统是Linux或Windows,建立数据库连接,并将连接对象赋值给connect变量。获取数据库的游标对象,并将其赋值给cursor变量,调用table_exists函数检查数据库中是否存在名为'5nw5u40i_zhaopinxinxi '的表,如果存在就执行关闭游标和连接,调用temp_data函数,最后返回。代码如下所示。

def parse(self, response):
    _url = urlparse(self.spiderUrl)
    self.protocol = _url.scheme
    self.hostname = _url.netloc
    plat = platform.system().lower()
    if not self.realtime and (plat == 'linux' or plat == 'windows'):
        connect = self.db_connect()
        cursor = connect.cursor()
        if self.table_exists(cursor, '5nw5u40i_zhaopinxinxi') == 1:
            cursor.close()
            connect.close()
            self.temp_data()
            return

使用Scrapy爬虫的回调函数,进行解析详情页面,从response的meta中获取字段对象fileds,最后对其进行赋值和处理。代码如下所示。

def detail_parse(self, response):
    fields = response.meta['fields']
    try:
        fields["detail"] = str( emoji.demojize(response.css('''div.detail-des_lists''').extract_first()))
    except:
        pass
    return fields

5.4数据处理

数据集处理是至关重要的环节。以下是我详细的数据集处理流程:

首先,通过各种渠道搜数据集,这可能涉及抓取数据、接收来自合作公司的资料,以及整合校内的就业公告等。这些数据应涵盖职位的核心详情,例如职位头衔、薪酬范围、工作位置及任职资格等。

接着,获取到数据集后,重要的一环是执行数据清洗和预处理步骤。数据清洗的目的是保证数据质量和完整性,涉及消除重复记录、处理未填充的值、修正不准确的信息等。预处理阶段则涵盖数据的格式统一、标准化和转化操作,以适应后续的分析需求。这一过程中,我们利用pandas库来进行数据洞察,并结合Scrapy架构进行高效的数据采集和清洗,从而保证数据的精确度和实用性。为了数据的可靠存储和扩展能力,我们选用MySQL数据库系统。

为了建立与MySQL数据库的连接,我们将使用root用户,其密码设定为123456,目标数据库名为spider5nw5u40i。采用pandas的read_sql方法,可以从数据库中提取所需的数据。具体代码实现如下。

def pandas_filter(self):
    engine = create_engine('mysql+pymysql://root:123456@localhost/spider5nw5u40i?charset=UTF8MB4')
    df = pd.read_sql('select * from zhaopinxinxi limit 50', con = engine)

首先,检查DataFrame对象df是否存在重复的行,使用'df.drop_duplicates()'函数删除对象中重复行。调用'df.isnull()'函数检测对象df'中的缺失值。随后调用'df.dropna()'函数删除具有缺失值的行。'df.fillna(value='暂无')'函数将对象df中的缺失值替换为指定的值'暂无'。代码如下所示。

df.duplicated()
df.drop_duplicates()
df.isnull()
df.dropna()
df.fillna(value = '暂无')

生成一个包含200个介于0到1000之间的随机整数的数组a,然后定义了一个布尔条件cond,用于筛选满足a在100到800之间的元素。生成一个包含10万个符合标准正态分布的随机数的数组b,定义一个布尔条件cond,用于筛选满足b的绝对值大于3的元素。

创建一个形状为10000行3列的DataFrame df2,其中的数据是符合标准正态分布的随机数。定义一个布尔条件cond,用于筛选在df2中任意一列的值大于三倍标准差的行。该行代码使用索引操作df2[cond].index,获取满足条件cond的行的索引。删除具有指定索引的行,并返回更新后的对象df2。代码如下所示。

a = np.random.randint(0, 1000, size = 200)
cond = (a<=800) & (a>=100)
a[cond]
b = np.random.randn(100000)
cond = np.abs(b) > 3 * 1
b[cond]
df2 = pd.DataFrame(data = np.random.randn(10000,3))
cond = (df2 > 3*df2.std()).any(axis = 1)
index = df2[cond].index
df2.drop(labels=index,axis = 0)

移除HTML标签,首先,检查html参数是否为None,如果是则返回空字符串。然后使用正则表达式模式匹配HTML标签的正则表达式(<[^>]+>),并通过re.sub函数将匹配到的HTML标签替换为空字符串。最后使用strip函数去除字符串两端的空白字符,并返回处理后的结果。代码如下所示。

def remove_html(self, html):
    if html == None:
        return ''
    pattern = re.compile(r'<[^>]+>', re.S)
    return pattern.sub('', html).strip()

在初始化数据库链接流程时,首要任务是从配置文件中提取必要的连接参数,这些参数涵盖了数据库的种类标识、服务器地址、端口、登录凭证,如用户名和密码。如果数据库名称未明确指定,系统会尝试从self.databaseName属性中寻找。接下来,根据所识别的数据库类型动态选择适配的连接技术。例如,如果确认是MySQL,会选择pymysql库进行无缝对接;反之,如果不是MySQL,程序将同样采用pymysql库来建立连接。最终,这段代码将执行并返回一个有效的连接对象,记作connect,整个过程逻辑严谨且高效。以下是具体实现的代码段:

def db_connect(self):
    type = self.settings.get('TYPE', 'mysql')
    host = self.settings.get('HOST', 'localhost')
    port = int(self.settings.get('PORT', 3306))
    user = self.settings.get('USER', 'root')
    password = self.settings.get('PASSWORD', '123456')

    try:
        database = self.databaseName
    except:
        database = self.settings.get('DATABASE', '')

    if type == 'mysql':
        connect = pymysql.connect(host=host, port=port, db=database, user=user, passwd=password, charset='utf8')
    else:
        connect = pymssql.connect(host=host, user=user, password=password, database=database)
    return connect

将处理好的数据进行数据存储,定义一个包含插入语句的sql字符串,目标数据库表是zhaopinxinxi,列名包括id、jobname、salary等,从表5nw5u40i_zhaopinxinxi中选择符合条件的数据,将这些数据插入到目标表中。

def temp_data(self):

    connect = self.db_connect()
    cursor = connect.cursor()
    sql = '''
        insert into `zhaopinxinxi`(……)
        select …… from `5nw5u40i_zhaopinxinxi`
        where(not exists (select …… from `zhaopinxinxi` where
              `zhaopinxinxi`.id=`5nw5u40i_zhaopinxinxi`.id))
         '''
    cursor.execute(sql)
    connect.commit()
    connect.close()

论文参考:

1 绪  论

1.1研究背景与意义

1.2系统研究现状

1.3 论文主要工作内容

2 系统关键技术

2.1 java简介

2.2 MySQL数据库

2.3 B/S结构

2.4 SpringBoot框架

2.5 VUE框架

3 系统分析

3.1 系统可行性分析

3.1.1 技术可行性

3.1.2 操作可行性

3.1.3 经济可行性

3.1.4 法律可行性

3.2 系统性能分析

3.3 系统功能分析

3.4 系统流程分析

3.4.1 数据开发流程

3.4.2 用户登录流程

3.4.3 系统操作流程

3.4.4 添加信息流程

3.4.5 修改信息流程

3.4.6 删除信息流程

4 系统设计

4.1 系统概要

4.2 系统结构设计

4.3数据库设计

4.3.1 数据库设计原则

4.3.3 数据库表设计

4.4 系统时序图

4.4.1 注册时序图

4.4.2 登录时序图

4.4.3 管理员修改用户信息时序图

4.4.4 管理员管理系统信息时序图

5 系统的实现

5.1前台功能实现

5.1.1系统首页页面

5.1.2个人中心

5.2后台管理员功能实现

6 系统测试

6.1 测试环境

6.2 测试目的

6.3 测试概述

6.4 单元测试

6.4.1 注册测试

6.4.2 登录测试

6.5 集成测试

结  论

参考文献

致  谢

代码实现:

/*** 登录相关*/
@RequestMapping("users")
@RestController
public class UserController{@Autowiredprivate UserService userService;@Autowiredprivate TokenService tokenService;/*** 登录*/@IgnoreAuth@PostMapping(value = "/login")public R login(String username, String password, String role, HttpServletRequest request) {UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));if(user != null){if(!user.getRole().equals(role)){return R.error("权限不正常");}if(user==null || !user.getPassword().equals(password)) {return R.error("账号或密码不正确");}String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());return R.ok().put("token", token);}else{return R.error("账号或密码或权限不对");}}/*** 注册*/@IgnoreAuth@PostMapping(value = "/register")public R register(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {return R.error("用户已存在");}userService.insert(user);return R.ok();}/*** 退出*/@GetMapping(value = "logout")public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok("退出成功");}/*** 密码重置*/@IgnoreAuth@RequestMapping(value = "/resetPass")public R resetPass(String username, HttpServletRequest request){UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));if(user==null) {return R.error("账号不存在");}user.setPassword("123456");userService.update(user,null);return R.ok("密码已重置为:123456");}/*** 列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,UserEntity user){EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));return R.ok().put("data", page);}/*** 信息*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") String id){UserEntity user = userService.selectById(id);return R.ok().put("data", user);}/*** 获取用户的session用户信息*/@RequestMapping("/session")public R getCurrUser(HttpServletRequest request){Integer id = (Integer)request.getSession().getAttribute("userId");UserEntity user = userService.selectById(id);return R.ok().put("data", user);}/*** 保存*/@PostMapping("/save")public R save(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {return R.error("用户已存在");}userService.insert(user);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);userService.updateById(user);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Integer[] ids){userService.deleteBatchIds(Arrays.asList(ids));return R.ok();}
}

推荐项目:

基于大数据爬虫+数据可视化的农村产权交易与数据可视化平台

基于SpringBoot+数据可视化+大数据二手电子产品需求分析系统

基于SpringBoot+数据可视化+协同过滤算法的个性化视频推荐系统

基于大数据+爬虫+数据可视化的的亚健康人群数据可视化平台

基于SpringBoot+大数据+爬虫+数据可视化的的媒体社交与可视化平台

基于大数据+爬虫+数据可视化+SpringBoot+Vue的智能孕婴护理管理与可视化平台系统

基于大数据+爬虫+数据可视化+SpringBoot+Vue的虚拟证券交易平台

基于大数据+爬虫技术+数据可视化的国漫推荐系统

基于大数据爬虫+Hadoop+数据可视化+SpringBoo的电影数据分析与可视化平台

基于python+大数据爬虫技术+数据可视化+Spark的电力能耗数据分析与可视化平台

基于SpringBoot+Vue四川自驾游攻略管理系统设计和实现

基于SpringBoot+Vue+安卓APP计算机精品课程学习系统设计和实现

基于Python+大数据城市景观画像可视化系统设计和实现

基于大数据+Hadoop的豆瓣电子图书推荐系统设计和实现

基于微信小程序+Springboot线上租房平台设计和实现-三端

2022-2024年最全的计算机软件毕业设计选题大全

基于Java+SpringBoot+Vue前后端分离手机销售商城系统设计和实现

基于Java+SpringBoot+Vue前后端分离仓库管理系统设计实现

基于SpringBoot+uniapp微信小程序校园点餐平台详细设计和实现

基于Java+SpringBoot+Vue+echarts健身房管理系统设计和实现

基于JavaSpringBoot+Vue+uniapp微信小程序实现鲜花商城购物系统

基于Java+SpringBoot+Vue前后端分离摄影分享网站平台系统 

基于Java+SpringBoot+Vue前后端分离餐厅点餐管理系统设计和实现

基于Python热门旅游景点数据分析系统设计与实现

项目案例: 

 

为什么选择我

 博主是CSDN毕设辅导博客第一人兼开派祖师爷、博主本身从事开发软件开发、有丰富的编程能力和水平、累积给上千名同学进行辅导、全网累积粉丝超过50W。是CSDN特邀作者、博客专家、新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流和合作。 

源码获取:

大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻

 精彩专栏推荐订阅下方专栏👇🏻

2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅

Java项目精品实战案例《100套》

Java微信小程序项目实战《100套》

Python项目实战《100套》

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

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

相关文章

【Android、IOS、Flutter、鸿蒙、ReactNative 】实现 MVP 架构

Android Studio 版本 Android Java MVP 模式 参考 模型层 model public class User {private String email;private String password;public User(String email, String password) {this.email = email;this.password = password;}public String getEmail() {return email;}…

android 使用MediaPlayer实现音乐播放--获取音乐数据

前面已经添加了权限&#xff0c;有权限后可以去数据库读取音乐文件&#xff0c;一般可以获取全部音乐、专辑、歌手、流派等。 1. 获取全部音乐数据 class MusicHelper {companion object {SuppressLint("Range")fun getMusic(context: Context): MutableList<Mu…

Android kotlin之配置kapt编译器插件

配置项目目录下的gradle/libs.versions.toml文件&#xff0c;添加kapt配置项&#xff1a; 在模块目录下build.gradle.kt中增加 plugins {alias(libs.plugins.android.application)alias(libs.plugins.jetbrains.kotlin.android)// 增加该行alias(libs.plugins.jetbrains.kotl…

HarmonyOs DevEco Studio小技巧31--卡片的生命周期与卡片的开发

Form Kit简介 Form Kit&#xff08;卡片开发服务&#xff09;提供一种界面展示形式&#xff0c;可以将应用的重要信息或操作前置到服务卡片&#xff08;以下简称“卡片”&#xff09;&#xff0c;以达到服务直达、减少跳转层级的体验效果。卡片常用于嵌入到其他应用&#xff0…

【GeekBand】C++设计模式笔记11_Builder_构建器

1. “对象创建” 模式 通过 “对象创建” 模式绕开new&#xff0c;来避免对象创建&#xff08;new&#xff09;过程中所导致的紧耦合&#xff08;依赖具体类&#xff09;&#xff0c;从而支持对象创建的稳定。它是接口抽象之后的第一步工作。典型模式 Factory MethodAbstract …

Ubuntu问题 - 显示ubuntu服务器上可用磁盘空间 一条命令df -h

目的 想要放我的 数据集 到新的ubuntu服务器中, 不知道存储空间够不够 开始 使用以下命令直接查看 df -h

.NET 9与C# 13革新:新数据类型与语法糖深度解析

记录&#xff08;Record&#xff09;类型 使用方式&#xff1a; public record Person(string FirstName, string LastName); 适用场景&#xff1a;当需要创建不可变的数据结构&#xff0c;且希望自动生成 GetHashCode 和 Equals 方法时。不适用场景&#xff1a;当数据结构需…

学习笔记030——若依框架中定时任务的使用

定时任务是软件开发中经常使用一个功能。 Java定时任务广泛应用于各种需要定时执行或周期性执行任务的场景&#xff0c;如&#xff1a; 数据备份&#xff1a;定期备份数据库中的数据&#xff0c;确保数据的安全性和可靠性。数据同步&#xff1a;如果有多个数据源需要同步数据…

出海第一步:搞定业务系统的多区域部署

出海的企业越来越多&#xff0c;他们不约而同开始在全球范围内部署应用程序。这样做的原因有很多&#xff0c;例如降低延迟&#xff0c;改善用户体验&#xff1b;满足一些国家或地区的数据隐私法规与合规要求&#xff1b;通过在全球范围内部署应用程序来提高容灾能力和可用性&a…

2024强化学习的结构化剪枝模型RL-Pruner原理及实践

[2024] RL-Pruner: Structured Pruning Using Reinforcement Learning for CNN Compression and Acceleration 目录 [2024] RL-Pruner: Structured Pruning Using Reinforcement Learning for CNN Compression and Acceleration一、论文说明二、原理三、实验与分析1、环境配置在…

【SpringCloud详细教程】-02-微服务环境搭建

精品专题&#xff1a; 01.《C语言从不挂科到高绩点》课程详细笔记 https://blog.csdn.net/yueyehuguang/category_12753294.html?spm1001.2014.3001.5482 02. 《SpringBoot详细教程》课程详细笔记 https://blog.csdn.net/yueyehuguang/category_12789841.html?spm1001.20…

BOM的详细讲解

BOM概述 BOM简介 BOM&#xff08;browser Object&#xff09;即浏览器对象模型&#xff0c;它提供了独立于内容而与浏览器窗口进行交互的对象&#xff0c;其核心对象是window。 BOM由一系列的对象构成&#xff0c;并且每个对象都提供了很多方法与属性 BOM缺乏标准&#xff…

Jenkins下载安装、构建部署到linux远程启动运行

Jenkins详细教程 Winodws下载安装Jenkins一、Jenkins配置Plugins插件管理1、汉化插件2、Maven插件3、重启Jenkins&#xff1a;Restart Safely插件4、文件传输&#xff1a;Publish Over SSH5、gitee插件6、清理插件&#xff1a;workspace cleanup system系统配置1、Gitee配置2、…

数据分析——Python绘制实时的动态折线图

最近在做视觉应用开发&#xff0c;有个需求需要实时获取当前识别到的位姿点位是否有突变&#xff0c;从而确认是否是视觉算法的问题&#xff0c;发现Python的Matplotlib进行绘制比较方便。 目录 1.数据绘制2.绘制实时的动态折线图3.保存实时数据到CSV文件中 import matplotlib.…

Unity 使用 ExcelDataReader 读取Excel表

文章目录 1.下载NuGet包2.通过NuGet包获取dll3.将dll复制unity Plugins文件夹下4.代码获取Excel表内容 1.下载NuGet包 通过NuGet下载&#xff1a; ExcelDataReaderExcelDataReader.DataSet离线下载方法 2.通过NuGet包获取dll 根据编译时程序集找到dll位置&#xff0c;找到与…

【vmware+ubuntu16.04】ROS学习_博物馆仿真克隆ROS-Academy-for-Beginners软件包处理依赖报错问题

首先安装git 进入终端&#xff0c;输入sudo apt-get install git 安装后&#xff0c;创建一个工作空间名为tutorial_ws&#xff0c; 输入 mkdir tutorial_ws#创建工作空间 cd tutorial_ws#进入 mkdir src cd src git clone https://github.com/DroidAITech/ROS-Academy-for-Be…

九、FOC原理详解

1、FOC简介 FOC&#xff08;field-oriented control&#xff09;为磁场定向控制&#xff0c;又称为矢量控制&#xff08;vectorcontrol&#xff09;&#xff0c;是目前无刷直流电机&#xff08;BLDC&#xff09;和永磁同步电机&#xff08;PMSM&#xff09;高效控制的最佳选择…

Linux的指令(三)

1.grep指令 功能&#xff1a; 在文件中搜索字符串&#xff0c;将找到的行打印出来 -i&#xff1a;忽略大小写的不同&#xff0c;所以大小写视为一样 -n&#xff1a;顺便输出行号 -v:反向选择&#xff0c;就是显示出没有你输入要搜索内容的内容 代码示例&#xff1a; roo…

2025蓝桥杯(单片机)备赛--扩展外设之DS1302的使用(九)

1.DS1302数据手册的使用 a. DS1302 features: 工作电压&#xff1a;2V-5.5V 通信协议&#xff1a;3线接口&#xff08;CE、IO、SCLK&#xff09; 计时&#xff1a;秒、分、小时、月日期、月、星期、年&#xff08;闰年补偿器期至2100年&#xff09; b.原理图接线说明&#xff…

在CentOS中,通过nginx访问php

其实是nginx反向代理到php-fpm&#xff0c;就像nginx反向代理到tomcat。 1、安装PHP-FPM 1.1 安装 yum install php yum install php-fpm php-common 这里只安装了php-fpm&#xff0c;根据需要安装php模块&#xff0c;比如需要访问mysql则添加安装 php-mysqlnd。 1.2 启动…