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

Python爬虫(5)静态页面抓取实战:requests库请求头配置与反反爬策略详解

目录

      • 一、背景与需求‌
      • 二、静态页面抓取的核心流程‌
      • 三、requests库基础与请求头配置‌
        • 3.1 安装与基本请求
        • 3.2 请求头核心参数解析‌
        • 3.3 自定义请求头实战
      • 四、实战案例:抓取豆瓣读书Top250‌
        • 1. 目标‌
        • 2. 代码实现
        • 3. 技术要点‌
      • 五、高阶技巧与反反爬策略‌
        • 5.1 动态Cookie维护‌
        • 5.2 随机请求头轮换‌
        • 5.3 请求频率控制‌
      • 六、注意事项与合规建议‌
        • 1. 法律合规‌:
        • 2. 道德规范‌:
        • 3. 异常监控‌:
      • 七、总结与扩展‌
        • 1. 核心收获‌:
        • 2. 进阶方向‌:
        • Python爬虫相关文章(推荐)

一、背景与需求‌

在数据驱动的互联网时代,静态页面抓取是获取公开数据的核心手段。然而,大多数网站会对非浏览器请求进行拦截,例如通过检测请求头(User-Agent/Cookie)识别爬虫行为。若未正确模拟浏览器请求,轻则返回异常数据,重则触发IP封禁。

‌本文目标‌:基于Python的requests库,详解如何通过设置请求头绕过基础反爬机制,高效抓取静态页面数据,并提供可复用的代码模板与避坑指南。

二、静态页面抓取的核心流程‌

静态页面抓取的本质是‌模拟浏览器发送HTTP请求‌,其核心步骤包括:

  1. ‌发送请求‌:使用requests.get()或requests.post()获取网页内容。
  2. ‌解析响应‌:通过状态码(如200/403/404)判断请求状态,提取HTML文本。
  3. ‌数据清洗‌:结合正则表达式、BeautifulSoup或XPath解析目标数据。

‌关键问题‌

  • ‌如何避免被封禁?‌ → 伪装请求头(User-Agent/Cookie)。
  • ‌如何处理登录状态?‌ → 携带Cookie维持会话。

三、requests库基础与请求头配置‌

3.1 安装与基本请求
# 安装requests库
pip install requests# 发送GET请求示例
import requests
url = "https://www.example.com"
response = requests.get(url)
print(response.status_code)  # 输出状态码
print(response.text)         # 输出HTML内容
3.2 请求头核心参数解析‌

请求头(Headers)是HTTP请求的元数据,用于告知服务器客户端信息。爬虫需重点关注以下字段:

字段作用示例值
User-Agent标识客户端类型(浏览器/设备),帮助服务器识别客户端环境Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Cookie维持会话状态,包含登录凭证、页面偏好等关键信息sessionid=abc123; token=xyz789
Referer声明请求来源页面,用于防跨站请求伪造(CSRF)等安全机制https://www.google.com
3.3 自定义请求头实战
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36","Cookie": "Hm_lvt_abc=123456; Hm_lpvt_abc=654321","Referer": "https://www.baidu.com/"
}# 发送带自定义请求头的GET请求
response = requests.get(url, headers=headers)

‌如何获取合法User-Agent?‌

  1. 浏览器开发者工具(F12 → Network → Headers → User-Agent)。
  2. 第三方库fake_useragent随机生成:
from fake_useragent import UserAgent
ua = UserAgent()
headers = {"User-Agent": ua.chrome}

‌如何获取Cookie?‌

  1. ‌手动获取‌:登录目标网站后,从浏览器开发者工具复制Cookie。
  2. ‌自动获取‌:通过requests.Session模拟登录流程(需分析登录接口)。

四、实战案例:抓取豆瓣读书Top250‌

1. 目标‌

提取书籍名称、评分、短评数量及出版信息。

2. 代码实现
import requests
from bs4 import BeautifulSoupurl = "https://book.douban.com/top250"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36","Cookie": "your_cookie_here"  # 如需登录后数据,需填写有效Cookie
}response = requests.get(url, headers=headers)
if response.status_code == 200:soup = BeautifulSoup(response.text, "html.parser")books = []for item in soup.find_all("tr", class_="item"):title = item.find("div", class_="pl2").a["title"].strip()rating = item.find("span", class_="rating_nums").textcomment_num = item.find("span", class_="pl").text.split()[-1].strip("()")publish_info = item.find("p", class_="pl").text.split("/")[-3:]books.append({"title": title,"rating": rating,"comment_num": comment_num,"publish_info": publish_info})print(books[:3])  # 输出前3条数据
else:print(f"请求失败,状态码:{response.status_code}")
3. 技术要点‌
  • ‌User-Agent伪装‌:绕过豆瓣基础反爬检测。
  • ‌异常处理‌:检查状态码,避免解析失败导致崩溃。
  • ‌数据清洗‌:通过字符串分割提取出版年份、出版社等信息。

五、高阶技巧与反反爬策略‌

5.1 动态Cookie维护‌

使用requests.Session对象自动管理Cookie:

session = requests.Session()
# 模拟登录(需分析登录接口)
login_data = {"username": "user", "password": "pass"}
session.post("https://www.example.com/login", data=login_data)
# 后续请求自动携带Cookie
response = session.get("https://www.example.com/protected-page")
5.2 随机请求头轮换‌

结合fake_useragent与代理IP,降低封禁风险:

from fake_useragent import UserAgent
import randomua = UserAgent()
headers_list = [{"User-Agent": ua.chrome}, {"User-Agent": ua.firefox}]# 随机选择请求头
headers = random.choice(headers_list)
response = requests.get(url, headers=headers)
5.3 请求频率控制‌

添加随机延迟,模拟人类操作:

import time
import randomfor page in range(1, 6):response = requests.get(f"https://example.com/page/{page}", headers=headers)time.sleep(random.uniform(1, 3))  # 随机延迟1~3秒

六、注意事项与合规建议‌

1. 法律合规‌:
  • 遵守robots.txt协议(如豆瓣禁止部分路径抓取)。
  • 禁止采集个人隐私或商业机密数据。
2. 道德规范‌:
  • 控制请求频率,避免对目标服务器造成压力。
  • 注明数据来源,尊重版权。
3. 异常监控‌:
  • 捕获requests.exceptions(如超时、连接错误)。
  • 监控响应内容是否包含反爬提示(如“请验证身份”)。

七、总结与扩展‌

1. 核心收获‌:
  • 请求头(User-Agent/Cookie)是静态页面抓取的‌生命线‌,需精准配置。
  • requests库灵活易用,结合BeautifulSoup可实现快速数据解析。
2. 进阶方向‌:
  • ‌动态页面抓取‌:学习Selenium或Playwright处理JavaScript渲染。
  • ‌分布式爬虫‌:使用Scrapy-Redis提升抓取效率。
  • ‌数据存储‌:集成MySQL/MongoDB持久化数据。
Python爬虫相关文章(推荐)
Python爬虫介绍Python爬虫(1)Python爬虫:从原理到实战,一文掌握数据采集核心技术
HTTP协议解析Python爬虫(2)Python爬虫入门:从HTTP协议解析到豆瓣电影数据抓取实战
HTML核心技巧Python爬虫(3)HTML核心技巧:从零掌握class与id选择器,精准定位网页元素
CSS核心机制Python爬虫(4)CSS核心机制:全面解析选择器分类、用法与实战应用

相关文章:

Python爬虫(5)静态页面抓取实战:requests库请求头配置与反反爬策略详解

目录 一、背景与需求‌二、静态页面抓取的核心流程‌三、requests库基础与请求头配置‌3.1 安装与基本请求3.2 请求头核心参数解析‌3.3 自定义请求头实战 四、实战案例:抓取豆瓣读书Top250‌1. 目标‌2. 代码实现3. 技术要点‌ 五、高阶技巧与反反爬策略‌5.1 动态…...

电子病历高质量语料库构建方法与架构项目(数据遗忘篇)

引言 在人工智能与医疗健康的深度融合时代,医疗数据的价值与风险并存。跨机构和平台的医疗数据共享对于推动医学研究、提高诊断精度和实现个性化治疗至关重要,但同时也带来了前所未有的隐私挑战。先进的AI技术可以从理论上去标识化的医疗扫描中重新识别个人身份,例如从MRI数…...

需求开发向设计规划的转化-从需求到设计和编码

需求和设计之间存在差别,但尽量使你的规格说明的具体实现无倾向性。理想情况是:在设计上的考虑不应该歪曲对预期系统的描述( Jackson 1995)。需求开发和规格说明应该强调对预期系统外部行为的理解和描述。让设计者和开发者参与需求…...

browser-use:AI驱动的浏览器自动化工具使用指南

AI驱动浏览器自动化 browser-use下载项目创建Python环境安装依赖配置环境运行WebUI简单使用Deep Research使用本地浏览器免登录 browser-use browser-use是一个基于 Python 的开源库,旨在简化 AI 代理与浏览器之间的交互。它将先进的AI功能与强大的浏览器自动化功能…...

Java从入门到“放弃”(精通)之旅——JavaSE终篇(异常)

Java从入门到“放弃”(精通)之旅🚀——JavaSE终篇(异常) 一、异常的概念与体系结构 1.1 什么是异常? 在生活中,当一个人表情痛苦时,我们可能会关心地问:"你是不是生…...

TCP协议理解

文章目录 TCP协议理解理论基础TCP首部结构图示字段逐项解析 TCP是面向连接(Connection-Oriented)面向连接的核心表现TCP 面向连接的核心特性TCP 与UDP对比 TCP是一个可靠的(reliable)序号与确认机制(Sequencing & Acknowledgment&#xf…...

NS3-虚拟网络与物理网络的交互-1 仿真概述

NS3-虚拟网络与物理网络的交互-1 仿真概述 目录 1. 仿真概述1.1 Testbed 仿真示例-FdNetDevice1.2 模拟通道示例-TapDevice 1. 仿真概述 NS-3 专为集成到 TestBed 和虚拟机中而设计 环境。我们通过提供两种网络设备来满足这一需求。 第一种设备是文件描述符 net 设备 &#x…...

晶振老化:不可忽视的隐患与预防策略

在电子设备的世界里,晶振如同精准的时钟,为电路系统提供稳定的频率信号。然而,随着时间推移,晶振会不可避免地出现老化现象。这个看似细微的变化,却可能引发设备性能下降、数据传输错误等一系列问题。晶振老化究竟藏着…...

企业为何要禁止“片断引用开源软件代码”?一文看透!

开篇故事:一段“开源代码”引发的百亿级灾难 某电商平台为快速上线新功能,从GitHub复制了一段“高性能加密算法”代码到支付系统中。 半年后,黑客通过该代码中的隐藏后门,盗取百万用户信用卡信息。 事后调查:这段代…...

测试模版x

本篇技术博文摘要 🌟 引言 📘 在这个变幻莫测、快速发展的技术时代,与时俱进是每个IT工程师的必修课。我是盛透侧视攻城狮,一名什么都会一丢丢的网络安全工程师,也是众多技术社区的活跃成员以及多家大厂官方认可人员&a…...

deepseek-r1-671B满血版,全栈式智能创作平台 - 多模态大模型赋能未来创作

引领AI创作新纪元 比象AI全栈式智能创作平台是基于全球领先的多模态大模型技术构建的新一代AI创作引擎,集成了前沿的BeyondLM-7B认知计算框架、BeyondDiffusion-XL视觉生成系统和BeyondSynth音视频合成技术,打造从内容构思到成品输出的完整智能创作闭环…...

Promethues 普罗米修斯

Prometheus 并非传统意义上的数据库,而是一个开源的系统监控和报警工具包,但它的核心组件之一是时间序列数据库,用于存储监控指标数据。以下是对 Prometheus 及其时间序列数据库功能的详细介绍: 1. Prometheus 概述 目标定位&a…...

Web 服务架构与技术组件概述

目录 web服务流程图 Web 服务流程图描述了客户端与服务器之间的交互。首先,用户通过浏览器发送请求到 Web 服务器。如果请求的是静态资源(如 HTML、CSS、图片),Web 服务器直接返回响应;如果是动态资源,We…...

华硕NUC产品闪耀第31届中国国际广播电视信息网络展览会

2025年4月22日,第31届中国国际广播电视信息网络展览会在北京国家会议中心盛大开幕。作为一年一度的行业盛会,展会汇聚了来自全球各地的顶尖技术与设备厂商。在这片科技与创新交织的海洋中,华硕NUC以其卓越性能、小巧体积和创新技术十分引人注…...

Matplotlib高阶技术全景解析(续):动态交互、三维可视化与性能优化

目录 ​编辑 一、动态可视化:实时数据流与动画生成 1. 实时数据流可视化 2. 复杂动画控制 二、三维可视化:科学计算与工程建模 1. 基础三维绘图 2. 高级三维渲染优化 三、交互式可视化:GUI集成与Web部署 1. Tkinter/PyQt嵌入式开发 …...

[DDD传灯录]禅师:这,就是领域驱动设计(01-02)

用《软件方法》引领AI全流程开发-5月12-14日第3期 领域驱动设计是革命性的创造,是划时代的洞见,是解决业务领域用户需求技术系统功能逻辑架构分析设计复杂性的敏捷精益方法学。 这一切的根源,归结于领域驱动设计蕴含丰富的佛学思想。佛学是所…...

0基础 | Proteus仿真 | 51单片机 | 继电器

继电器---RELAY 本次选择一款5v一路继电器进行讲解 信号输入 IN1输入高电平,三极管导通,LED1点亮,电磁铁12接通吸引3向下与4接通,J1A的12接通 IN1输入低电平,则J1A的23接通 产品引脚定义及功能 序号 引脚符号 引脚…...

鸿蒙应用开发证书考试的一点想法

一、介绍: 直接上图 二、体验后的想法: 1.知识点在指南API参考最佳实践里面找 2.没有明确说明考试不能查第1点的文档,但是考试只有1个小时,合理分配时间 3.切屏三次后自动提交要注意,每月3次机会下月又有3次机会&a…...

MiniMind模型的web交互功能初试

MiniMind模型的web交互功能初试 一、前言 MiniMind提供了基于streamlit的web交互功能,能够即时切换模型和修改相关参数,经初步测试,具有比较好的体验感。本文介绍了使用MiniMind使用web交互功能的方法,并对使用中出现的问题给出…...

手把手玩转 JSON:快递包裹式思维拆箱装箱,Python / Java / Scala 全景实战指南

在日常开发中,JSON 就像全栈程序员口袋里那把万用螺丝刀——既轻便又几乎无处不在。本文面向初学者和中级读者,用“快递包裹”与“便签盒子”的比喻,结合 Python / Java / Scala 三语种示例,带你从概念、语法到实战全面掌握 JSON。…...

HFSS5(李明洋)——设置激励(波端口激励)

Magnetic是适用于铁磁氧导体的,只有前三种激励类型可以用于计算S参数 1波端口激励 也可以设置在模型内部,如果是设置在模型内部必须加一段理想导体,用于指定端口方向 1.1——模式 number 输入N:计算1-N的模式都计算 1.2——模式校准 计算端口特征阻抗有三种方式:Zpi、…...

NVIDIA --- 端到端自动驾驶

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、传统驾驶模型二、NVIDIA的端到端驾驶模型1.基本模型2.自查讯向量3.通用框架 总结 前言 端到端自动驾驶指的是系统接收来自摄像头雷达和激光雷达的原始传感…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(11): てあります。

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(11): てあります。 1、前言(1)情况说明(2)工程师的信仰 2、知识点(1)てあります。(2)…...

【前端】如何检查内存泄漏

在实际的场景中,如果观察到内存持续出现峰值,并且内存消耗一直没有减少,那可能存在内存泄漏。 使用 Chrome DevTools 来识别内存图和一些内存泄漏,我们需要关注以下两个方面: ● 使用性能分析器可视化内存消耗&#xf…...

【多线程】四、死锁

文章目录 Ⅰ. 死锁的概念Ⅱ. 死锁的四个必要条件Ⅲ. 避免死锁的方案Ⅳ. 避免死锁的算法Ⅰ. 死锁的概念 ​ 死锁是指在一组进程中的各个进程均占有不会释放的资源,但因互相申请被其他进程所占用不会释放的资源而处于的一种永久等待状态。 ​ 通常,死锁发生在多个进程同时需要…...

【现代深度学习技术】循环神经网络06:循环神经网络的简洁实现

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈PyTorch深度学习 ⌋ ⌋ ⌋ 深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上,结合当代大数据和大算力的发展而发展出来的。深度学习最重…...

Video-LLaVA

一、研究背景与现有方法局限性 在多模态大语言模型(LVLMs)的发展中,现有方法面临两大核心挑战。其一为单一模态处理的局限,多数 LVLMs 仅能处理图像 - 语言或视频 - 语言等单一视觉模态,难以在统一框架下高效整合多种视觉输入。其二为统一表示的困难,尽管部分研究尝试通过…...

firewalld 详解

firewalld 详解 firewalld 是 Linux 系统中一个动态防火墙管理工具,取代了传统的 iptables,提供更灵活、动态的规则配置,支持运行时修改且无需重载服务。以下是其核心概念、常用操作及示例指南: 一、核心概念 区域(Zo…...

QuecPython+USBNET:实现USB网卡功能

USBNET 概述 USBNET(USB Networking) 是一种通过 USB 接口 实现网络通信的技术,允许设备通过 USB 连接模拟以太网(Ethernet over USB)或直接进行网络数据传输。它广泛应用于嵌入式设备、工业控制、虚拟机和便携式设备…...

百度搜索AI开放计划:助力开发者通过MCP Server连接用户和应用

百度搜索AI开放计划:助力开发者通过MCP Server连接用户和应用 一、背景 2025年4月25日,百度在Create开发者大会上发布了全新的AI开放计划。这一计划的核心目的是实现用户和AI应用、MCP Server的高效链接,提供更流畅的互动体验,推…...

一文带你了解单例模式及其逐步优化~

单例模式 单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来获取该实例。 使用场景: 需要频繁创建和销毁的对象 创建对象时耗时过多或资源消耗过大 工具类对象(无状态的工具类) 访问…...

【金仓数据库征文】-不懂数据库也能看懂!一文解析金仓技术介绍以典型应用

目录 一、主角登场 没有数据库,你的生活可能会 “乱套” 国产数据库之金仓 KingbaseES 金仓数据库凭啥 “C 位出道”? 二、金仓数据库产品核心解析 企业级数据库 “全能选手” 巧妙的 “内部协作” 按需选择的版本 四、生态联合解决方案深度探索…...

什么是视频上墙

视频联动上墙是指当监控系统中出现报警或其他特定事件时,相关的视频画面能够自动切换并显示在指定的监控大屏或显示设备上,以便监控人员能够快速、直观地查看事件现场的情况,及时做出响应和处理。 具体介绍• 系统组成 :一般由前端…...

C++初登门槛

多态 一、概念 多态是指不同对象对同一消息产生不同响应的行为。例如,蓝牙、4G、Wi-Fi 对“发送数据”指令有不同的具体实现。 二、核心理解 本质:通过基类指针或引用操作子类对象,实现运行时动态绑定。 表现形式: 接口统一&a…...

【金仓数据库征文】- 金融HTAP实战:KingbaseES实时风控与毫秒级分析一体化架构

文章目录 引言:金融数字化转型的HTAP引擎革命一、HTAP架构设计与资源隔离策略1.1 混合负载物理隔离架构1.1.1 行列存储分区策略1.1.2 四级资源隔离机制 二、实时流处理与增量同步优化2.1 分钟级新鲜度保障2.1.1 WAL日志增量同步2.1.2 流计算优化 2.2 物化视图实时刷…...

SpringBoot 学习

什么是 SpringBoot SpringBoot 是基于 Spring 生态的开源框架,旨在简化 Spring 应用的初始化搭建和开发配置。它通过约定大于配置的理念,提供快速构建生产级应用的解决方案,显著降低开发者对 XML 配置和依赖管理的负担。 特点: …...

Q2桥门式起重机司机考试复习重点

Q2桥门式起重机司机考试复习重点 Q2桥门式起重机司机属于特种设备作业人员,理论考试重点复习时应重点掌握以下内容: 1、基础知识 桥门式起重机的结构组成(大车、小车、起升机构、电气系统等)。 主要技术参数(额定起…...

并发设计模式实战系列(7):Thread Local Storage (TLS)

🌟 大家好,我是摘星! 🌟 今天为大家带来的是并发设计模式实战系列,第七章Thread Local Storage (TLS),废话不多说直接开始~ 目录 一、核心原理深度拆解 1. TLS内存模型 2. 关键特性 二、生活化类比&a…...

本地使用Ollama部署DeepSeek

以下是在本地使用Ollama部署DeepSeek的详细教程,涵盖安装、修改安装目录、安装大模型以及删除大模型的操作步骤。 安装Ollama 1. 系统要求 确保你的系统满足以下条件: 操作系统:macOS、Linux或者Windows。足够的磁盘空间和内存。 2. 安装…...

通过VSCode远程连接到CentOS7/Ubuntu18等老系统

通过VSCode远程连接到CentOS7/Ubuntu18等老系统 背景 VSCode的远程连接插件Remote SSH一直以来是简单好用的远程工具。然而,2025年2月之后的版本在远程安装vscode-server时,预编译的server依赖glibc 2.28,这就要求Linux远程机的glibc版本应…...

Python在AI虚拟教学视频开发中的核心技术与前景展望

Python在AI虚拟教学视频开发中的核心技术与前景展望 一、引言:AI虚拟教学的技术革新 随着教育数字化转型加速,AI虚拟教学视频凭借个性化、沉浸式体验成为教育科技的新风口。Python以其强大的多模态处理能力、丰富的开源生态和跨领域兼容性,成…...

【金仓数据库征文】金仓数据库:开启未来技术脑洞,探索数据库无限可能

我的个人主页 我的专栏: 人工智能领域、java-数据结构、Javase、C语言,希望能帮助到大家!!! 点赞👍收藏❤ 目录 引言:数据库进化的下一站 —— 未来科技的无限可能金仓数据库简介:国…...

深入掌握Redis主从复制:原理、配置与生产级实践指南

一、主从复制核心价值与适用场景 1.1 核心价值矩阵 数据安全:多节点冗余存储,避免单点数据丢失 服务可用性:主节点故障时可快速切换从节点 性能扩展:通过横向扩展从节点提升读吞吐量 运维便利:从节点可承担备份、分…...

springboot如何管理多数据源?

静态多数据源管理 配置多个数据源 :创建多个数据源的配置类,通常使用 @ConfigurationProperties 注解来绑定配置文件中的数据源属性,并通过 @Bean 注解定义多个 DataSource Bean 。例如: 配置类: @Configuration public class DataSourceConfig {@Bean(name = "prima…...

基于风力推进器控制的小球实验装置设计与研究

目录 完整论文下载链接放在文章结尾,有需要自行下载。 目录 摘 要 1 引 言 2 概述 2.1 风控小球系统概述 2.2 本设计方案思路 2.3 研发方向和技术关键 2.4 主要技术指标 3 总体设计 4 硬件设计 4.1 单片机最小系统 4.2 供电接口电路 4.3 Openmv摄像头…...

Swift闭包(Closure)深入解析与底层原理

前言 在Swift开发中,闭包是一个非常重要且强大的特性。本文将深入探讨Swift闭包的底层实现原理,帮助开发者更好地理解和使用这一特性。 1. 什么是闭包 闭包是自包含的函数代码块,可以在代码中被传递和使用。它不仅可以像函数一样执行代码&…...

【DE-III】基于细节增强的模态内和模态间交互的视听情感识别

abstract 在视听情感识别(AVER)中,捕捉视频和音频模态之间复杂的时间关系是至关重要的。然而,现有的方法缺乏对局部细节的关注,如视频帧之间的面部状态变化,这会降低特征的可区分性,从而降低识别准确率。 为此,本文提出了一种用于AVER的细节增强的模态内和模态间交互…...

c++11 :智能指针

目录 一 为什么需要智能指针? 二 智能指针的使用及原理 1. RAII 2. auto_ptr 3. unique_ptr 4. shared_ptr 5. weak_ptr 三 内存泄漏 1.什么是内存泄漏,内存泄漏的危害 2. 如何避免内存泄漏? 一 为什么需要智能指针? …...

Linux解压tar.gz包的正确姿势(附赠防抓狂指南)

一、为什么你的解压命令总报错? 每次看到.tar.gz后缀是不是心里一紧?(别装了!我都看到你偷偷打开浏览器查命令的样子了)这个在Linux界横行霸道的压缩格式,其实用对了方法比Windows的zip还简单。今天咱们不…...

MCP协议:让AI从“话痨”变“实干家”的神奇魔法

一、MCP 协议:AI 界的 “万能插头” 是啥来头? 1.1 从 “动口不动手” 到 “全能打工人” 你以为 AI 只会陪你聊天、写文案?那你可小瞧它啦!MCP 协议(Model Context Protocol),堪称 AI 的 “瑞…...