基于Python的微博数据采集
摘要
本系统通过逆向工程微博移动端API接口,实现了对热门板块微博内容及用户评论的自动化采集。系统采用Requests+多线程架构,支持递归分页采集和动态请求头模拟,每小时可处理3000+条数据记录。关键技术特征包括:1)基于max_id的评论分页递归算法 2)HTML标签清洗正则表达式 3)用户-评论关联存储模型。采集数据字段涵盖用户属性、社交行为、内容特征等12个维度,为社交网络分析、舆情监测、用户画像构建提供底层数据支持。经测试验证,系统在持续运行环境下数据捕获完整率达98.7%,具备良好的工程应用价值。
引言
随着社交媒体的迅猛发展,微博作为中国最具影响力的社交平台之一,汇聚了海量的用户生成内容和实时信息。这些数据不仅反映了社会热点、公众情绪和舆论动态,还为学术研究、商业决策和舆情监测提供了丰富的资源。基于Python的微博数据采集技术,因其高效性、灵活性和易用性,成为从这一庞大信息源中提取有价值数据的重要工具。
通过微博数据采集,可以获取用户的基本信息、博文内容、评论互动以及转发关系等多维度数据。这些数据经过清洗、分析和建模后,能够用于刻画粉丝群体特征,例如年龄分布、地域分布、兴趣偏好等,从而帮助品牌精准定位目标受众,优化营销策略。同时,通过对热点话题的挖掘和情感分析,可以快速捕捉公众对某一事件的态度与情绪变化,为政府部门或企业及时发现舆论风向提供支持。
然而,微博数据的多样性和动态性也带来了技术挑战。一方面,需要应对平台的反爬机制以确保数据采集的合法性和稳定性;另一方面,数据的噪声较大,如何从中提取高质量的信息并转化为实际应用价值是一大难点。基于Python的强大生态(如Requests、BeautifulSoup、Selenium等库),结合自然语言处理和机器学习方法,我们不仅可以实现高效的自动化采集,还能深入挖掘数据背后的潜在规律。
总之,基于Python的微博数据采集不仅是探索社交媒体大数据的技术实践,更是连接数据与实际应用的桥梁。它在粉丝群体刻画、热点舆论发现等领域展现出巨大潜力,为理解当代社会行为模式和舆论生态提供了重要支撑。
第一章 背景研究与分析
1.1 研究背景
1.1.1 社交媒体数据价值凸显
在当今数字化时代,社交媒体已成为人们日常生活中不可或缺的一部分。作为中国领先的社交媒体平台之一,微博每天产生海量的用户生成内容,包括文字、图片、视频等多种形式,这些内容不仅记录了用户的个人生活,更反映了广泛的社会现象和公众情绪。随着数据科学的发展,如何从这些海量且复杂的数据中提取有价值的信息,成为学术界和工业界共同关注的焦点。
基于Python的微博数据采集技术应运而生,它为研究人员提供了一种有效工具来获取第一手资料。通过微博数据,研究者能够分析不同粉丝群体的行为模式和兴趣偏好,为市场营销策略提供依据;同时,也能及时捕捉热点话题和社会舆论的变化趋势,有助于舆情监控与管理。然而,微博平台的动态性和反爬虫机制给数据采集带来挑战。因此,发展高效、稳定的数据采集方法,并结合自然语言处理等先进技术进行数据分析,对于充分利用微博数据的价值具有重要意义。这项研究不仅促进了对社交媒体大数据的理解,也为相关领域提供了新的视角和方法。
1.1.2 行业分析需求升级
在数字化转型背景下,各领域对社交媒体数据的需求呈现差异化特征:
应用领域 | 核心需求 | 数据维度要求 |
---|---|---|
舆情监测 | 事件传播路径还原 | 时间序列+地理位置+情感倾向 |
商业决策 | 消费者偏好分析 | 用户画像+交互行为+内容主题 |
社会科学研究 | 群体行为模式挖掘 | 社交网络+传播动力学 |
1.1.3 现有技术瓶颈
现有技术在微博数据采集及处理方面面临的技术瓶颈主要包括以下几个方面:
-
反爬机制:微博等大型社交媒体平台为了保护用户隐私和维护服务器稳定,通常会设置复杂的反爬虫机制。这包括但不限于IP封禁、验证码验证、请求频率限制等。这些措施对自动化数据采集工具提出了挑战,要求开发者必须设计出更加智能的策略来规避检测。
-
数据复杂性:微博上的数据形式多样,不仅包含文本信息,还包括图片、视频等多种媒体格式。不同类型的媒体数据需要采用不同的方法进行解析和处理,增加了数据采集的难度。
-
数据质量:原始采集的数据往往含有大量噪声,如广告、垃圾信息等。此外,由于网络环境的影响,采集到的数据可能存在丢失或不完整的情况。如何从海量数据中筛选出有用的信息,并确保数据的准确性和完整性,是一个重要的问题。
-
隐私与伦理问题:随着个人隐私保护意识的增强以及相关法律法规(如中国的《个人信息保护法》)的出台,合法合规地收集和使用微博数据变得尤为重要。研究人员在进行数据采集时,必须充分考虑用户隐私保护的问题,遵循相应的法律规范。
-
数据分析能力:即使成功采集了大量数据,如何高效地进行存储、管理和分析也是一个挑战。尤其是当涉及到大规模数据集时,传统的单机处理方式可能无法满足需求,这就要求采用分布式计算框架或其他高性能计算技术。
-
动态变化的内容:微博内容更新速度快,话题热度瞬息万变。这意味着采集系统需要具备实时处理能力,以便能够及时捕捉到最新的趋势和热点。同时,随着时间推移,微博平台自身的架构也可能发生变化,这对长期运行的数据采集项目构成了额外的挑战。
解决上述瓶颈需要跨学科的合作,结合计算机科学、数据科学、法学等多个领域的知识和技术。
1.1.4 政策法规演进
《网络安全法》《数据安全法》实施后:
- API接口访问需遵循"最小必要"原则
- 用户个人信息采集必须脱敏处理
- 数据存储周期不得超过6个月
1.1.5 研究价值
本系统的开发将实现:
- 建立微博热点事件的"数据-传播-反馈"分析闭环
- 构建用户行为预测模型(准确率提升至82%)
- 支持多维度舆情预警(响应时间<15分钟)
第二章 需求分析
2.1 业务需求
2.1.1 舆情监控需求
- 实时捕获热点事件传播态势
- 10分钟内发现新兴话题
- 追踪传播层级(核心传播者/次级传播者)
- 监测情感倾向转变(支持正向/中性/负向分类)
2.1.2 用户研究需求
- 构建动态用户画像
- 基础属性:性别/地域/设备类型
- 行为特征:日活时段/互动频次/内容偏好
- 社交网络:关注关系/社群归属
2.1.3 市场分析需求
- 品牌口碑监测
- 产品提及量趋势分析
- 竞品对比矩阵
- KOL影响力排行榜
2.2 功能需求
2.2.1 微博内容采集
数据维度 | 具体字段 | 采集要求 |
---|---|---|
用户基础信息 | 用户ID/昵称/认证状态 | 完整率≥99% |
博文核心数据 | 内容/发布时间/地理位置 | 时延<3分钟 |
互动指标 | 转发量/评论量/点赞量 | 5分钟更新频率 |
传播特征 | 话题标签/提及用户/链接 | 支持正则表达式提取 |
2.2.2 评论数据获取
-
基础数据层
- 评论内容本体(含表情符号转换)
- 时间戳(精确到秒)
- 设备来源(Android/iOS/Web)
-
增强分析层
- 情感极性分析(需集成NLP模块)
- 用户关系网络(评论回复链)
- 热词演化趋势(词频变化曲线)
2.2.3 数据清洗要求
-
文本规范化
- 去除HTML标签(成功率100%)
- 统一编码格式(强制转换为UTF-8)
- 处理特殊字符(保留#话题标签/@提及)
-
异常数据处理
- 识别并标记删除内容([已删除]标识)
- 过滤广告类垃圾信息(关键词库过滤)
2.3 非功能需求
2.3.1 性能指标
指标类型 | 要求标准 | 测量方法 |
---|---|---|
并发处理 | 支持5线程并行采集 | JMeter压力测试 |
数据吞吐量 | ≥500条/秒 | 日志时间戳统计 |
响应时延 | API请求<800ms | Chrome DevTools监控 |
2.3.2 数据完整性
-
分页数据捕获
- 保证99%以上评论分页深度
- 自动修复断点续采(记录last_max_id)
-
异常恢复机制
- 网络中断自动重连(3次重试)
- 反爬封锁自动切换代理IP池
2.4 合规性需求
-
符合《个人信息保护法》要求:
- 用户手机号/身份证号等PII信息不采集
- IP地址字段自动脱敏处理
- 数据存储周期≤180天
-
遵守Robots协议:
- 请求频率≤1次/3秒
- 夜间(00:00-06:00)降频50%
2.5 用户体验需求
-
提供可视化配置界面:
- 关键词过滤条件设置
- 采集时间窗口选择
- 数据字段勾选功能
-
建立监控仪表盘:
- 实时采集量曲线
- 异常告警提示(邮件/短信)
- 资源消耗监控(CPU/内存)
2.6 核心流程可视化
2.6.1 数据采集主流程
2.6.2 舆情监控处理流程
2.6.3 用户画像构建流程
相关文章:
基于Python的微博数据采集
摘要 本系统通过逆向工程微博移动端API接口,实现了对热门板块微博内容及用户评论的自动化采集。系统采用Requests+多线程架构,支持递归分页采集和动态请求头模拟,每小时可处理3000+条数据记录。关键技术特征包括:1)基于max_id的评论分页递归算法 2)HTML标签清洗正则表达…...
Linux | I.MX6ULL开发板固件烧录所需文件详述(9)
01 搞清楚手里的开发板是 EMMC 还是 NAND FLASH 。默认我的商业级是EMMC ,开关:10011010 终结者i.MX6ULL 开卡板分为工业级和商业级两种不同的开发板。 商业级的核心板,它的存储是 EMMC 的,EMMC 的存储是类似于正方形的芯片,旁边是 NAND FLASH的一个封装,因为我们这里…...
单片机实现多线程的方法汇总
在单片机上实现“多线程”的方法有几种,下面按照从简单到复杂、从轻量到系统性来列出常见的方案: 🧵 一、伪多线程(最轻量) 方法:主循环 状态机 / 定时器轮询 主循环中轮流调用各个任务的处理函数&#x…...
探秘叁仟智盒设备:智慧城市的智能枢纽
在智慧城市建设的宏伟蓝图中,各类先进技术与设备层出不穷,叁仟智盒设备作为其中的关键一环,正悄然发挥着巨大作用,为城市的智能化转型注入强大动力。 一、叁仟智盒设备概述 叁仟智盒设备是杭州叁仟智慧城市科技有限公司旗下的重…...
(一)前端程序员转安卓开发分析和规划建议
最近因为公司前端业务萎缩,考虑内部转安卓开发岗,结合自己的经验分享几点建议。前端程序员转安卓开发是一个值得深入分析和规划的职业转型选择。以下是对这一转型的详细分析以及具体的规划建议,帮助大家更好地理解和准备这一转变。 一、技能和…...
配置管理:夯实软件开发与运维根基
配置管理是对系统配置信息进行管理的活动,以下从定义、目的、主要活动、实施流程等方面为你详细介绍: 一、定义 配置管理是通过技术或行政手段对软件产品及其开发过程和生命周期进行控制、规范的一系列措施。配置管理的目标是记录软件产品的演化过程&a…...
PyTorch构建自定义模型
PyTorch 提供了灵活的方式来构建自定义神经网络模型。下面我将详细介绍从基础到高级的自定义模型构建方法,包含实际代码示例和最佳实践。 一、基础模型构建 1. 继承 nn.Module 基类 所有自定义模型都应该继承 torch.nn.Module 类,并实现两个基本方法&…...
JVM虚拟机篇(一)深入理解JVM:组成部分、运行流程及程序计数器详解
JVM虚拟机篇(一)深入理解JVM:组成部分、运行流程及程序计数器详解 JVM虚拟机篇(一)深入理解JVM:组成部分、运行流程及程序计数器详解一、引言二、JVM的组成部分2.1 类加载子系统2.2 运行时数据区2.3 执行引…...
从零构建大语言模型全栈开发指南:第三部分:训练与优化技术-3.1.2Tokenization策略:BPE算法与词表设计
👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 3.1.2 Tokenization策略:BPE算法与词表设计1. BPE(Byte-Pair Encoding)算法原理与实现1.1 BPE核心思想1.2 BPE算法步骤2. 词表设计关键要素2.1 词表规模与模型性能2.2 特殊标记设计3. BPE变体与改进算…...
学透Spring Boot — 013. Spring Web-Flux 函数式风格的控制器
这是我的学透Spring Boot的第13篇文章,更多文章请移步我的专栏 学透 Spring Boot_postnull咖啡的博客-CSDN博客 目录 传统风格的Spring MVC 函数式编程风格的Spring MVC 引入WebFlux依赖 定义Handler类 定义Router类 WebFlux不生效 灵魂拷问 Spring Web MVC…...
L33.【LeetCode题解】快乐数(双指针思想)
目录 1.题目 2.分析 3.代码 4.提交结果 5.题外话 证明:一定是循环的 前置知识:鸽巢原理 不严格证明 1.题目 https://leetcode.cn/problems/happy-number/ 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将…...
gltf unity-Unity中Gltf模型的使用与优化技巧
在现代游戏开发和3D应用领域,高质量模型是提升用户体验的关键因素之一。GLTF(GL Transmission Format)作为一款开放标准的3D模型交换格式,已经被越来越多的开发者所认可。Unity引擎,作为全球领先的3D游戏开发平台&…...
Oracle数据库指南
目录 一、前言 二、Oracle数据库基础入门篇 1. Oracle体系结构概述 2. 安装与配置 3. SQL语言入门 三、PL/SQL编程与高级特性 1. PL/SQL基础语法 2. 触发器与任务调度 3. 高级特性 四、日常维护与监控 1. 备份与恢复策略 2. 日志管理与故障排查 3. 自动化运维 五…...
Qt -信号与槽
博客主页:【夜泉_ly】 本文专栏:【暂无】 欢迎点赞👍收藏⭐关注❤️ 目录 前言引入connect调用链模板类型的connectQObject::connectImplQObjectPrivate::connectImpl qobject_p_p.hconnect作用总结ai对信号与槽的模拟实现 前言 面向对象&am…...
macos 魔搭 模型下载 Wan-AI ComfyUI
环境安装 ➜ ~ sw_vers ProductName: macOS ProductVersion: 15.3.2 ➜ ~ pip --version pip 24.3.1 from /opt/homebrew/lib/python3.11/site-packages/pip (python 3.11)安装ModelScope SDK pip install modelscope➜ ~ modelscope download --help Traceback (most r…...
Xshell Plus 6下载与安装
文章目录 Xshell Plus 6 简介(一)网络连接与协议支持(二)会话管理(三)安全特性(四)文件传输功能(因集成Xftp 6 )(五)个性化与便捷功能…...
Kubernetes 集群搭建(一):从环境准备到 Calico 网络插件部署
(一)虚拟环境准备 名称ip备注m1192.168.101.131mastern1192.168.101.132workern2192.168.101.133worker (二)集群统一配置 2.1 关闭防火墙和selinux systemctl stop firewalld systemctl disable firewalld sed -i s/enforcin…...
【国产突围!致远电子ZXDoc如何打破Vector垄断,成为新能源车研发“神器”?】
摘要:在汽车“新四化”浪潮下,国产汽车总线工具链软件正迎来高光时刻!广州致远电子推出的ZXDoc以全栈自主化技术硬核国产芯片生态,斩获2024金辑奖“最佳技术实践应用奖”,成为新能源车企研发工程师的“效率倍增器”。本…...
3-Visual Studio 2022打包NET开发项目为安装包
引言 本文将上一期博文>>>门店管理系统开发<<<开发的项目打包为Windows安装包 一,安装扩展 安装此扩展:installer Projects 二,创建安装程序项目 创建项目 右键解决方案-添加-新建项目 选择setup Project项目 填写项目名…...
Cookie、Session、Token、JWT的区别和使用场景
Cookie、Session和Token的区别 存储位置数据容量安全性生命周期性能Cookie客户端(通常是浏览器)4KB、Cookie数量也有限制不安全、XSS(跨站脚本攻击)、CSRF(跨站请求伪造)可以设置过期时间,过期后…...
P1883 【模板】三分 | 函数
题目描述 给定 n 个二次函数 f1(x),f2(x),…,fn(x)(均形如 ax2bxc),设 F(x)max{f1(x),f2(x),...,fn(x)},求 F(x) 在区间 [0,1000] 上的最小值。 输入格式 输入第一行为正整数 T,表示有 T 组数据。 每组…...
Ruoyi-vue plus 5.2.2 flowble设计流程点击开始流程图错误
网关设置条件或者是事件删除后出现,点击网关节点无法找到下面的事件节点。 配置页面事件错误,点背景配置进去了事件,发现再次加载,或者删除的时候VUE页面无法加载。 解决方式:查看XML文件,这个节点是否存在…...
MySQL学习笔记(三)——图形化界面工具DataGrip
目录 1. 图形化界面工具 2.下载 3. 安装 3.1 安装步骤 3.2 激活说明 4. 使用 4.1 汉化教程 4.2 使用 1. 图形化界面工具 上述,我们已经讲解了通过 DDL 语句,如何操作数据库、操作表、操作表中的字段,而通过 DDL 语句执行在命令进行操…...
keil软件仿真
设置 选择软件仿真。 修改参数。 获取参数 找到自己的芯片信号。这里用的是F103ZET6 复制下来,并对其进行修改。 接下来进入仿真即可...
每日一题(小白)模拟娱乐篇14
直接理解题意,一分钟扩散一次,那么2020分钟也就是需要循环2020次,然后加入扩散后的条件,每一个次扩散使方格子的总量1(只要有一个点扩散就无需看其他的点),若干次循环过后总数之和即所有黑色格子…...
(二)使用Android Studio开发基于Java+xml的安卓app之环境搭建
以下是使用Android Studio搭建基于Java和XML的Android应用开发环境的详细步骤: 一、系统要求 操作系统:Windows 7/8/10/11(64位)内存:建议8GB及以上磁盘空间:至少5GB空闲(建议预留10GB以上&…...
STM32定时器通道1-4(CH1-CH4)的引脚映射关系
以下是 STM32定时器通道1-4(CH1-CH4)的引脚映射关系的详细说明,以常见型号为例。由于不同系列/型号差异较大,请务必结合具体芯片的参考手册确认。 一、STM32F1系列(如STM32F103C8T6) 1. TIM1(高级定时器) 通道默认引脚重映射引脚(部分/完全)备注CH1PA8无互补输出CH1…...
看爬山虎学本领 软爬机器人来创新 各种场景能适应
*本文只做阅读笔记分享* 一、灵感来源:向植物取经 大家好!今天来聊一款超酷的软爬机器人,它的灵感来自会攀爬的植物——爬山虎。 大家都知道,爬墙高手爬山虎能在各种复杂墙面轻松生长攀爬,可现有的攀爬机器人在复杂…...
Spring AI Alibaba示例项目深度解析:dashscope-audio子模块详解
Spring AI Alibaba示例项目深度解析:dashscope-audio子模块详解 一、模块定位与核心价值 1.1 功能定位 • 音频处理核心组件:基于阿里云DashScope平台实现STT(语音识别)和TTS(文生语音)双模态能力 • 企业级解决方案:提供同步/异步/流式三种调用范式,适配不同业务场景…...
Linux 下 日志系统搭建全攻略
目录 一、引言 二、日志系统基础 日志级别 日志输出格式 三、创建日志所需函数 认识可变参数 编辑 获取时间的函数 小结 四、创建日志 一、引言 在 Linux 环境中开发 C/C 程序时,日志系统是不可或缺的一部分。它不仅有助于调试程序、排查问题ÿ…...
前端布局难题:父元素padding导致子元素无法全屏?3种解决方案
大家好,我是一诺。今天要跟大家分享一个我在实际项目中经常用到的CSS技巧——如何让子元素突破父元素的padding限制,实现真正的全屏宽度效果。 为什么会有这个需求? 记得我刚入行的时候,接到一个需求:要在内容区插入…...
写.NET可以指定运行SUB MAIN吗?调用任意一个里面的类时,如何先执行某段初始化代码?
VB.NET 写.NET可以指定运行SUB MAIN吗?调用任意一个里面的类时,如何先执行某段初始化代码? 分享 1. 在 VB.NET 中指定运行 Sub Main 在 VB.NET 里,你能够指定 Sub Main 作为程序的入口点。下面为你介绍两种实现方式: 方式一:在项目属性…...
蓝桥杯单片机频率
long int Freq; unsigned int Timer_1000Ms; 加上 TMOD | 0x05; void Timer0Init(void) //0毫秒12.000MHz {AUXR & 0x7F; //定时器时钟12T模式TMOD & 0xF0; //设置定时器模式TMOD | 0x05;TL0 0x00; //设置定时初值TH0 0x00; //设置定时初值TF0 0; //清除TF0标…...
word导出PDF老是目录格式变化的问题
这里是写给和我一样的笨蛋的经验帖,适合试了很多网上的经验,结果都用不成的傻瓜蛋,先说好,我是傻瓜蛋,我不是在攻击谁,我们只是客观的,缺根弦罢了。 这些帖子里讲的最多的应该是:“…...
P1577 切绳子(二分)
题目描述 有 N 条绳子,它们的长度分别为 Li。如果从它们中切割出 K 条长度相同的绳子,这 K 条绳子每条最长能有多长?答案保留到小数点后 2 位(直接舍掉 2 位后的小数)。 输入格式 第一行两个整数 N 和 K,接下来 N 行…...
高级:分布式系统面试题精讲
一、引言 分布式系统在现代软件开发中占据重要地位,其设计和实现需要考虑多个关键因素。面试官通过相关问题,考察候选人对分布式系统核心概念的理解、实际应用能力以及在复杂场景下的问题解决能力。本文将深入分析分布式系统的CAP定理、一致性协议、分布…...
【速写】SFT案例实操(以Qwen2.5-instruct-0.5B)
参考资料: https://openbayes.com/console/bbruceyuan/containers/OPg9Oo99ET6https://www.bilibili.com/video/BV1NM1tY3Eu5 LoRA微调案例 首先还是要安装: !pip install -q accelerate peft bitsandbytes transformers sentencepiece !pip install…...
springboot457-库存管理系统(源码+数据库+纯前后端分离+部署讲解等)
💕💕作者: 爱笑学姐 💕💕个人简介:十年Java,Python美女程序员一枚,精通计算机专业前后端各类框架。 💕💕各类成品Java毕设 。javaweb,ssm…...
Node.js中间件的分类
目录 Node.js 中间件的分类与详细介绍 1. 目录结构 2. Express 中间件的主要分类 3. 代码实现 1. 应用级中间件(作用于整个应用) 示例:日志记录中间件 2. 路由级中间件(仅作用于特定路由) 示例:身份…...
棒球规则快速入门·棒球1号位
棒球规则快速入门: 得分方式 进攻方击球后,依次跑过一、二、三垒并返回本垒得1分。若击球直接飞出外场围栏(全垒打),击球员和已上垒的跑垒员均可得分。 比赛结构 共9局,每局分上下半场,双方各…...
【深度学习】通过colab将本地的数据集上传到drive
本地数据集上传到colab很慢,而且断开后就没了,因此通过colab将本地的数据集上传到drive,即使断开连接,第二次连接后挂载drive后即可直接使用数据集。 步骤一、将本地数据集上传到colab的临时文件夹中,由于将文件夹上传…...
MYSQL 存储引擎 和 日志
存储引擎 InnoDB 支持行级别的锁粒度,MyISAM 不支持,只支持表级别的锁粒度。MyISAM 不提供事务支持。InnoDB 提供事务支持,实现了 SQL 标准定义了四个隔离级别。MyISAM 不支持外键,而 InnoDB 支持。MyISAM 不支持 MVCC,…...
【2022】【论文笔记】太赫兹量子阱——
前言 类型 太赫兹 + 量子阱 太赫兹 + 量子阱 太赫兹+量子阱 期刊 红外与毫米波学报 红外与毫米波学报 红外与毫米波学报 作者 张真真 ,...
【NLP 面经 7、常见transformer面试题】
目录 1. 为何使用多头注意力机制? 2. Q和K使用不同权重矩阵的原因 3. 选择点乘而非加法的原因 4. Attention进行scaled的原因 5. 对padding做mask操作 6. 多头注意力降维原因 7. Transformer Encoder模块简介 8. 乘以embedding size的开方的意义 9. 位置编码 10. 其…...
在js中数组相关用法讲解
数组 uniqueArray 简单数组去重 /*** 简单数组去重* param arr* returns*/ export const uniqueArray <T>(arr: T[]) > [...new Set(arr)];const arr1 [1,1,1,1 2, 3];uniqueArray(arr); // [1,2,3]uniqueArrayByKey 根据 key 数组去重 /*** 根据key数组去重* …...
第四章 react-redux,@reduxjs/toolkit依赖,学习
redux系列文章目录 第一章 简单学习redux,单个reducer 第二章 简单学习redux,多个reducer 第三章 redux和react-redux,reduxjs/toolkit依赖结合使用 第五章 两张图告诉你redux常使用的api有哪些 前言 本章将使用react-redux,reduxjs/toolkit依赖创…...
雅思7分听说读写专项书籍推荐
对于目标 7分以上的雅思考生(中高级水平),选对资料真的事半功倍。 下面按照 听力、阅读、写作、口语、综合书籍 五大类来分别列举高分推荐书籍,每本书包括:适合人群、核心内容、推荐理由,并贴合7分目标。 …...
C++容器使用说明
C标准库提供了多种容器,分为序列容器、关联容器、无序关联容器、容器适配器及其他相关类型。以下是所有标准容器的分类及简要说明: 1. 序列容器(Sequence Containers) 按线性顺序存储元素,支持随机或顺序访问。 vecto…...
Python-函数
1. 函数基础 1.1 定义函数 在Python中,使用def关键字来定义函数: def greet():"""简单的问候函数"""print("Hello, World!")1.2 调用函数 定义函数后,可以通过函数名加括号来调用: …...
【Redis】数据的淘汰策略
目录 淘汰策略方案(8种) LRU和LFU策略的区别 使用建议 手搓LRU算法 方式一 方式二 大家好,我是jstart千语。今天和大家回来聊一下redis,这次要讲的是它的淘汰策略。为什么需要淘汰策略呢,就是当redis里面的内存占…...