当前位置: 首页 > news >正文

基于大数据爬虫数据挖掘技术+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套》

相关文章:

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

#1024程序员节&#xff5c;征文# 博主介绍&#xff1a;CSDN毕设辅导第一人、全网粉丝50W,csdn特邀作者、博客专家、腾讯云社区合作讲师、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老…...

【go】只读通道和只写通道

文章目录 概述1. 通道的方向2. 为什么会有只读通道和只写通道&#xff1f;3. 总结 概述 在 Go 中&#xff0c;只读通道和只写通道的概念通过通道的方向来实现。Go 语言允许你在函数参数中指定通道的方向&#xff0c;从而限制通道的使用方式&#xff0c;这样可以确保代码的清晰…...

带Burst AOT Settings移植问题

报错 burst问题 Burst AOT Settings 是 Unity 的 Burst Compiler 的一部分&#xff0c;用于预编译程序集&#xff08;AOT&#xff0c;Ahead-Of-Time Compilation&#xff09;&#xff0c;以便在不支持 JIT&#xff08;即时编译&#xff09;的平台上运行&#xff0c;例如 iOS 和…...

Debezium日常分享系列之:Debezium Engine

Debezium日常分享系列之&#xff1a;Debezium Engine 依赖打包项目在代码中输出消息格式消息转换消息转换谓词高级记录使用引擎属性异步引擎属性数据库模式历史属性处理故障 Debezium连接器通常通过部署到Kafka Connect服务来运行&#xff0c;并配置一个或多个连接器来监视上游…...

运行 GreatSQL 时为什么要求关闭透明大页

在大部分运维规范中&#xff0c;一般都会要求在运行 GreatSQL/MySQL 的环境中要关闭透明大页&#xff0c;那么到底什么是透明大页&#xff0c;为什么要关闭&#xff0c;打开有什么风险吗&#xff1f; 在此之前&#xff0c;我也是有点懵的&#xff0c;本文试着回答这个疑问&…...

【Rive】Rive在Android上的简单应用

1 前言 Rive 是一款强大的矢量图编辑器&#xff0c;可以设计图形、也可以制作动画。Rive 提供了矩形、圆形、三角形、多边形、星形、钢笔、文字等工具来绘制各式各样的矢量图形&#xff1b;提供了平移、旋转、缩放等工具对矢量图形进行各种变换&#xff1b;提供了骨骼、约束、时…...

Base 崛起,SynFutures 或成生态系统中最具潜力应用

10月份的 Unchained Crypto 采访中&#xff0c;Solana 联合创始人 Anatoly 表示&#xff0c;通过观察活跃地址数、TVL、DeFi 版块、Meme 热潮和开发者生态等多个关键指标&#xff0c;察觉到 Base 势头正猛&#xff0c;成为以太坊生态最强劲的 L2。 11月下旬&#xff0c;小狐狸创…...

探索Go语言中的循环双向链表

简介 循环双向链表将双向链表的灵活性与循环结构相结合&#xff0c;使得每个节点都有一个指向前一个节点和后一个节点的指针&#xff0c;并且最后一个节点的Next指针指向头节点&#xff0c;形成一个闭环。本文将深入探讨如何在Go语言中实现和操作这种数据结构。 循环双向链表…...

Leetcode617.合并二叉树(HOT100)+Leetcode79. 单词搜索(HOT100)

链接 代码&#xff1a; class Solution { public:TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) {if(!root1)return root2;if(!root2)return root1;root1->valroot2->val;root1->left mergeTrees(root1->left,root2->left);root1->right merg…...

亚马逊云(AWS)使用root用户登录

最近在AWS新开了服务器&#xff08;EC2&#xff09;&#xff0c;用于学习&#xff0c;遇到一个问题就是默认是用ec2-user用户登录&#xff0c;也需要密钥对。 既然是学习用的服务器&#xff0c;还是想直接用root登录&#xff0c;下面开始修改&#xff1a; 操作系统是&#xff1…...

使用Docker在Ubuntu 22.04上部署MySQL数据库的完整指南

使用Docker在Ubuntu 22.04上部署MySQL数据库的完整指南 在现代应用开发中&#xff0c;使用Docker来部署数据库已成为一种流行的做法。本文将详细介绍如何在Ubuntu 22.04系统上使用Docker部署最新版本的MySQL数据库&#xff0c;包括关键注意事项、详细步骤、闭坑指南以及总结。…...

算法笔记:力扣15、三数之和

思路&#xff1a; 实现代码 class Solution {public List<List<Integer>> threeSum(int[] nums) {List<List<Integer>> result new ArrayList<>(); Arrays.sort(nums); // 先对数组进行排序 for (int i 0; i < nums.length - 2; i) { /…...

perf list PMU 缓存事件

事件标识事件解释PMU事件路径l1d_cacheL1数据缓存的访问次数&#xff0c;L1缓存是CPU内部最快的缓存&#xff0c;位于距离CPU核心非常近的位置。armv8_pmuv3/l1d_cache/l1d_cache_lmiss_rd表示从L1数据缓存读取数据时发生缓存未命中的次数。armv8_pmuv3/l1d_cache_lmiss_rd/l1d…...

使用C#开发VTK笔记(一)-VTK开发环境搭建

一.使用C#开发VTK的背景 因为C#开发的友好性,一直都比较习惯于从C#开发程序。而长期以来,都希望有一个稳定可靠的三位工程数模的开发演示平台,经过多次对比之后,感觉VTK和OpenCasCade这两个开源项目是比较好的,但它们都是用C++编写的,我用C#形式开发,只能找到发布的C#组…...

2024Selenium自动化常见问题!

"NoSuchElementException"异常&#xff1a; 确保使用了正确的选择器来定位元素。可以使用id、class、XPath或CSS选择器等。 可以尝试使用find_elements方法来查找元素列表&#xff0c;并检查列表的长度来判断元素是否存在。 使用显式等待&#xff08;WebDriverWait…...

考研英语翻译与大小作文

名词动化词 1 持有 harbor2 2 反映 mirror 3 缩短 bridge 4 使用 harness 5 掩饰 mask/veil 6 修改 tailor 7 汇集 pool 8 控制 curb 9 想象 picture 10 激发 trigger 拉丁…...

详解Rust异步编程

文章目录 多线程编程与异步编程对比并发模型对比分析异步编程基础概念及用法 Rust的异步编程通过async/await语法和Future特性提供了一种高效的方式来处理并发任务&#xff0c;尤其在I/O密集型操作中表现出色。async/await异步编程模型性能高&#xff0c;还能支持底层编程&…...

Vue + Element UI 实战技巧:如何实现 el-table 重新加载数据后折叠所有展开行

在 Vue 中使用 Element UI 的 el-table 组件时&#xff0c;如果你想要在数据重新加载后折叠所有行的展开状态&#xff0c;你可以通过维护一个数据属性来追踪哪些行是展开的&#xff0c;并在数据更新时重置这个属性。 以下是一个简单的示例来说明如何实现这个功能&#xff1a; …...

linux静态链接和动态链接

静态链接的特点 程序独立性高 静态链接是在程序编译时&#xff0c;将所有需要的目标文件以及它们所依赖的库文件中的代码和数据链接成一个可执行文件。一旦链接完成&#xff0c;这个可执行文件就包含了运行所需的全部内容&#xff0c;不依赖外部的库文件。例如&#xff0c;一个…...

计算机网络学习资料全攻略

计算机网络是计算机科学中一个非常重要的分支&#xff0c;它涉及到数据在计算机系统之间的传输和通信。随着互联网的快速发展&#xff0c;对计算机网络知识的掌握变得越来越重要。本文将为您提供一份全面的计算机网络学习资料指南&#xff0c;帮助您从基础到高级逐步深入学习。…...

第七课 Unity编辑器创建的资源优化_UI篇(UGUI)

上期我们学习了简单的Scene优化&#xff0c;接下来我们继续编辑器创建资源的UGUI优化 UI篇&#xff08;UGUI&#xff09; 优化UGUI应从哪些方面入手&#xff1f; 可以从CPU和GPU两方面考虑&#xff0c;CPU方面&#xff0c;避免触发或减少Canvas的Rebuild和Rebatch&#xff0c…...

Go的简单问题问答

基础问题回答 Go 的主要特点是什么&#xff1f; 简洁&#xff1a;语法简化&#xff0c;减少复杂性。并发&#xff1a;内置 Goroutine 和 Channel&#xff0c;支持轻量级并发。静态类型&#xff1a;强类型语言&#xff0c;编译时检查错误。跨平台&#xff1a;编译生成独立的二进…...

SVN迁移至Git,保留commit提交记录

SVN迁移至Git 如何将 SVN 仓库迁移到 Git 并保留提交记录一、生成userinfo.txt二. 使用 git svn clone 命令迁移 SVN 到 Git2.1. 基本命令格式2.2. 示例&#xff1a;从 SVN 克隆到 Git参数说明&#xff1a;2.3 执行的过程遇到的窗口2.4. 迁移过程 三. 将 Git 仓库推送到远程 Gi…...

一站式指导:在Neo4j与PostgreSQL间实现高效数据同步

作者&#xff1a;后端小肥肠 &#x1f347; 我写过的文章中的相关代码放到了gitee&#xff0c;地址&#xff1a;xfc-fdw-cloud: 公共解决方案 &#x1f34a; 有疑问可私信或评论区联系我。 &#x1f951; 创作不易未经允许严禁转载。 姊妹篇&#xff1a; 数据同步的艺术&#…...

linux-安全-iptables防火墙基础笔记

目录 一、 iptables链结构 五链 二、 iptables表结构 四表 三、 匹配流程 四、 语法 五、 匹配 1. 通用匹配 2. 隐含匹配 3. 显示匹配 六、 SNAT 七、 DNAT 八、 规则备份及还原 1. 备份 2. 还原 这篇将讲解iptables防火墙的基础知识 一、 iptables链结构 规则…...

Redis——主从复制原理

Redis的主从复制原理是其高可用性和分布式读取能力的重要基础。以下是Redis主从复制原理的详细解释&#xff1a; 一、主从复制的基本概念 Redis的主从复制是一种数据复制和备份的方式&#xff0c;它允许一个主节点&#xff08;Master&#xff09;将其所有的数据同步到一个或多…...

vue2 虚拟DOM 和 真实DOM (概念、作用、Diff 算法)

虚拟 DOM 和 真实DOM&#xff08;概念、作用、Diff 算法&#xff09; 1.1 概念 真实 DOM&#xff08;Document Object Model&#xff09;&#xff1a;是浏览器中用于表示文档结构的树形结构。 <h2>你好</h2>虚拟DOM&#xff1a;用 JavaScript 对象来模拟真实 DOM…...

王道考研编程题总结

我还在完善中&#xff0c;边复习边完善&#xff08;这个只是根据我自身总结的&#xff09; 一、 线性表 1. 结构体 #define MaxSize 40 typedef struct{ElemType data[MaxSize]&#xff1b;int length; }SqList 2. 编程题 1. 删除最小值 题意 &#xff1a;从顺序表中删除…...

手机租赁系统开发全攻略 创新服务助力企业智能转型

内容概要 在当今数字化飞速发展的时代&#xff0c;“手机租赁系统开发”正逐渐成为企业智能转型的必然选择。这一过程并不简单&#xff0c;但关键流程的解析将帮助企业理清思路。首先&#xff0c;了解需求和目标是基础&#xff0c;之后制定详细计划和流程图&#xff0c;让整件…...

git回退到某个版本git checkout和git reset命令的区别

文章目录 1. git checkout <commit>2. git reset --hard <commit>两者的区别总结推荐使用场景* 在使用 Git 回退到某个版本时&#xff0c; git checkout <commit> 和 git reset --hard <commit> 是两种常见的方式&#xff0c;但它们的用途和影响有很…...

如何使用Spring Boot进行Web开发?

Spring Boot 是一个基于 Java 的框架&#xff0c;它简化了新 Spring 应用的初始设置和开发过程。使用 Spring Boot 进行 Web 开发可以让你快速创建独立的、生产级别的基于 Spring 的应用。下面是使用 Spring Boot 进行 Web 开发的基本步骤&#xff1a; 文章目录 1. 环境准备2. …...

error=‘null‘], commandType=io.lettuce.core.RedisPublisher$SubscriptionCommand]

问题 查看java应用启动日志输出下面错误&#xff1a; errornull], commandTypeio.lettuce.core.RedisPublisher$SubscriptionCommand] Completing command LatencyMeteredCommand [typeINFO, outputStatusOutput [output# Server redis_version:4.0.14 redis_git_sha1:000…...

AI PC处理器ARM架构-引入NPU和大模型

AI PC处理器架构变化&#xff1a;ARM低功耗、引入NPU和大模型 AI进化加速端侧落地&#xff0c;新一轮浪潮蓄势待发(2024)”。ARM(Advanced RISC Machine)架构和x86架构是两种主要的处理器架构&#xff0c;它们在设计理念、应用场景和性能特点等方面有显著的差异。 ARM架构是一…...

python之opencv库Haar级联分类器检测人脸--‘haarcascade_frontalface_default.xml‘

python之opencv库Haar级联分类器检测人脸–‘haarcascade_frontalface_default.xml’ opencv库&#xff1a; 它由 Intel 公司发起并参与开发&#xff0c;其初衷是为了提供高效的计算机视觉算法实现。随着计算机视觉领域的发展&#xff0c;OpenCV不断更新和完善&#xff0c;吸引…...

「Mac畅玩鸿蒙与硬件37」UI互动应用篇14 - 随机颜色变化器

本篇将带你实现一个随机颜色变化器应用。用户点击“随机颜色”按钮后&#xff0c;界面背景会随机变化为淡色系颜色&#xff0c;同时显示当前的颜色代码&#xff0c;页面还会展示一只猫咪图片作为装饰&#xff0c;提升趣味性。 关键词 UI互动应用随机颜色生成状态管理用户交互…...

确定 POST 请求中的数据字段

在使用 requests 进行 HTTP 请求时&#xff0c;data 和 params 是两种常见的参数&#xff0c;用于传递不同类型的数据。以下是它们的作用和区别&#xff1a; 1. data 的作用 用于 POST 请求的主体。通常传递表单数据或 JSON 数据。在 HTTP 请求中&#xff0c;data 中的内容会…...

Linux - DNS服务器

六、DNS服务器 1、简介 DNS&#xff08;Domain Name System&#xff09;是互联网上的一项服务&#xff0c;它作为将域名和IP地址相互映射的一个分布式 数据库&#xff0c;能够使人更方便的访问互联网。 DNS系统使用的是网络的查询&#xff0c;那么自然需要有监听的port。DNS使…...

探究 SpringBoot 结合 MVC 高校办公室行政事务管理系统的设计与应用实现

摘 要 身处网络时代&#xff0c;随着网络系统体系发展的不断成熟和完善&#xff0c;人们的生活也随之发生了很大的变化&#xff0c;人们在追求较高物质生活的同时&#xff0c;也在想着如何使自身的精神内涵得到提升&#xff0c;而读书就是人们获得精神享受非常重要的途径。为了…...

蓝桥杯-扫雷

这题不难&#xff0c;就是麻烦一点&#xff0c;这里暴力求解了直接 题目链接&#xff1a; 扫雷 AC代码&#xff1a; import java.util.Scanner; // 1:无需package // 2: 类名必须Main, 不可修改public class Main {public static void main(String[] args) {Scanner scan ne…...

Hive高可用配置

在hive的商用上没有集群一说&#xff0c;而且它本身也不是数据库&#xff0c;只是hadoop的数据sql化工具&#xff0c;但是hive可以配置高可用&#xff0c;通常业内对元数据服务会开5个&#xff0c;而HS2服务开3个&#xff0c;来保证hive服务的高可用 配置方式也很简单&#xf…...

探索AI新世界!热门工具与学习资源免费获取

​抖知书老师推荐&#xff1a; 人工智能技术的迅速发展让人们既充满期待又有些迷茫。有人担忧被AI技术取代&#xff0c;有人却积极拥抱这场科技浪潮。无论你处于哪种心态&#xff0c;人工智能已经深入到我们生活的方方面面。如果你希望轻松掌握最新的AI工具与动态&#xff0c;…...

MAUI APP开发蓝牙协议的经验分享:与跳绳设备对接

在开发MAUI应用程序时&#xff0c;蓝牙协议的应用是一个重要的环节&#xff0c;尤其是在需要与外部设备如智能跳绳进行数据交换的场景中。以下是我在开发过程中的一些经验和心得&#xff0c;希望能为你的项目提供帮助。 1. 蓝牙协议基础 蓝牙协议是无线通信的一种标准&#x…...

常见Linux命令(详解)

文章目录 常见Linux命令文件目录类命令pwd 打印当前目录的绝对路径ls 列出目录内容cd 切换路径mkdir 建立目录rmdir 删除目录touch 创建空文件cp 复制文件或目录rm 移除文件或者目录mv 移动文件与目录或重命名cat 查看文件内容more 文件分屏查看器less 分屏显示文件内容head 显…...

LeetCode763. 划分字母区间(2024冬季每日一题 23)

给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段&#xff0c;同一字母最多出现在一个片段中。 注意&#xff0c;划分结果需要满足&#xff1a;将所有划分结果按顺序连接&#xff0c;得到的字符串仍然是 s 。 返回一个表示每个字符串片段的长度的列表。 示例 1&a…...

【k8s 深入学习之 event 聚合】event count累记聚合(采用 Patch),Message 聚合形成聚合 event(采用Create)

参考 15.深入k8s:Event事件处理及其源码分析 - luozhiyun - 博客园event 模块总览 EventRecorder:是事件生成者,k8s组件通过调用它的方法来生成事件;EventBroadcaster:事件广播器,负责消费EventRecorder产生的事件,然后分发给broadcasterWatcher;broadcasterWatcher:用…...

Java--数组的定义与使用

1.数组的基本概念 1.1为什么用数组 在程序设计中,每一个数据总是对应一个变量.当数据量越大,就需要更多的变量来存储.我们将相同类型的数据存储到一个集合中,就可以更方便我们对数据进行访问,同时可以减少不断定义变量.这个集合就叫做数组 1.2数组的定义 数组是一种基本的数…...

tcpdump抓包wireshark分析

背景 分析特定协议的数据包&#xff0c;如 HTTP、DNS、TCP、UDP 等&#xff0c;诊断网络问题&#xff0c;例如连接故障、延迟和数据包丢失。 大概过程 1.安装tcpdump yum update yum install tcpdump2.抓包&#xff0c;从当前时间起&#xff0c;一小时后停止&#xff0c…...

qtcanpool 知 09:测试框架

文章目录 前言不满改进优化后语 前言 很久以前&#xff0c;作者写的代码都没有测试用例&#xff0c;最多就是写个 demo 验证一下&#xff0c;毕竟不是专业出身&#xff0c;也没经过大公司的洗礼。 后来&#xff0c;参与到一些项目才知道有专门的测试&#xff0c;而且开发也要测…...

使用Apache HttpClient发起一个GET HTTP请求

Apache HttpClient 是一个强大且灵活的Java库&#xff0c;用于处理HTTP请求。 它提供了广泛的功能&#xff0c;包括对不同HTTP方法的支持、连接管理、Cookie处理等。 无论是与RESTful API交互、下载网页内容还是自动化网页任务&#xff0c;Apache HttpClient 都能通过其简洁而…...

C++ STL 容器系列(三)list —— 编程世界的万能胶,数据结构中的百变精灵

STL系列学习参考&#xff1a; C STL系列__zwy的博客-CSDN博客https://blog.csdn.net/bite_zwy/category_12838593.html 学习C STL的三个境界&#xff0c;会用&#xff0c;明理&#xff0c;能扩展&#xff0c;STL中的所有容器都遵循这个规律&#xff0c;下面我们就按照这三个境…...