Python之两个爬虫案例实战(澎湃新闻+网易每日简报):附源码+解释

news2025/5/25 14:28:10

目录

一、案例一:澎湃新闻时政爬取

 (1)数据采集网站

 (2)数据介绍

 (3)数据采集方法

 (4)数据采集过程

二、案例二:网易每日新闻简报爬取

 (1)数据采集网站

 (2)数据介绍

 (3)数据采集方法 

 (4)数据采集过程

 (5)完整代码与爬取结果


一、案例一:澎湃新闻时政爬取

(1)数据采集网站

1. 网站名称:澎湃新闻网

2. 网站链接:时事_澎湃新闻-The Paper

(2)数据介绍

        本次采集的数据为澎湃新闻网时事频道的新闻标题及发布时间。新闻标题反映了社会热点、政策动态、民生实事等各方面内容,是公众了解国家大事、社会变迁的重要信息来源;发布时间则体现了新闻的时效性,有助于分析不同时段的热点话题分布情况以及信息传播的速度与规律。通过对这些数据的整理与分析,可为后续的大数据分析、新闻热点预测、舆情监测等研究提供丰富且实用的素材。

(3)数据采集方法

        本次数据采集基于 Python 语言,借助 webdriver_manager 创建 Chrome 浏览器实例,运用 selenium 库模拟网页滚动行为,突破动态网页加载限制,成功获取完整数据,并将其保存于本地文本文件中。随后,利用 BeautifulSoup 解析 HTML 结构,结合 re 正则表达式精准定位目标数据,匹配 class 为 small_cardcontent__BTALp 的 div 标签,进而提取每个新闻卡片下的 h2 标题数据和 span 日期数据,实现对澎湃新闻时政新闻关键信息的高效抓取。

(4)数据采集过程

步骤一:导入time,re,bs4,selenium,webdriver_manager库,其中,time 库用于设置滚动等待时间,re 库负责正则表达式匹配,bs4 库中的 BeautifulSoup 用于解析 HTML 文本,而 selenium 及其相关模块配合 webdriver_manager 则是实现网页动态加载的关键工具。

import time

import re

from bs4 import BeautifulSoup

from selenium import webdriver

from selenium.webdriver.common.by import By

from selenium.webdriver.common.keys import Keys

from selenium.webdriver.chrome.service import Service

from webdriver_manager.chrome import ChromeDriverManager

步骤二:使用 webdriver 创建 Chrome 浏览器实例,访问澎湃新闻网时事频道。通过模拟滚动到底部操作,持续加载更多内容,直至无法继续加载为止。获取完整 HTML 结构并保存至 “澎湃新闻时政.txt” 文件中,确保采集到的数据完整且可后续处理;

# 启动浏览器
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.get("https://www.thepaper.cn/channel_25950")
# 模拟滚动到底部以加载更多内容
last_height = driver.execute_script("return document.body.scrollHeight")
while True:
    # 滚动到底部
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    
    # 等待页面加载新内容
    time.sleep(2)  # 可以根据实际情况调整时间
    
    # 获取新的页面高度
    new_height = driver.execute_script("return document.body.scrollHeight")
    
    # 如果页面高度没有变化,说明已经到底部了
    if new_height == last_height:
        break
    last_height = new_height

# 获取完整的HTML
html = driver.page_source

# 保存完整的HTML到文件
with open("澎湃新闻时政.txt", "w", encoding="utf-8") as f:
    f.write(html)

# 关闭浏览器
driver.quit(
print("已保存至澎湃新闻时政.txt")

步骤三:定义 extract_news 函数,利用 BeautifulSoup 解析 HTML 文本,构建正则匹配式精准定位 class 为 small_cardcontent__BTALp 的 div 标签。通过遍历每个新闻卡片,提取 h2 标签内的标题文本以及符合特定时间格式的 span 标签内容,将提取到的标题和时间信息存储为字典格式并返回结果列表。最终将提取的新闻数据逐条写入 “澎湃新闻时政爬取.txt” 文件中;

def extract_news(html_content):
    soup = BeautifulSoup(html_content, 'html.parser')
    results = []

    # 遍历每个新闻卡片
    for card in soup.find_all('div', class_=re.compile(r'small_cardcontent__\w+')):
        # 提取标题
        h2_tag = card.find('h2')
        title = h2_tag.get_text(strip=True) if h2_tag else "无标题"

        # 提取时间:定位到包含时间信息的 span 标签
        time_span = None
        # 遍历卡片内的所有 p 标签,寻找符合结构的 span
        for p_tag in card.find_all('p'):
            spans = p_tag.find_all('span')
            # 若 p 标签下有至少两个 span,且第二个 span 包含时间特征
            if len(spans) >= 2:
                candidate = spans[1].get_text(strip=True)
                # 检查是否符合时间格式(相对时间或日期)
                if re.match(r'(\d+[天小时分钟前]+)|(\d{4}-\d{2}-\d{2})|(\d{1,2}月\d{1,2}日)', candidate):
                    time_span = candidate
                    break  # 找到后立即退出循环

        time = time_span if time_span else "时间未找到"
        results.append({"标题": title, "时间": time})
    
    return results

news_list = extract_news(html_content)
for i, news in enumerate(news_list):
    with open("澎湃新闻时政爬取.txt", "a", encoding="utf-8") as f:
        f.write(f"第{i+1}条时政\n")
        f.write(f"标题:{news['标题']}\n时间:{news['时间']}\n\n")
    # print(f"标题:{news['标题']}\n时间:{news['时间']}\n---")

(5)完整代码与爬取结果

1. 完整代码

# 时政
import time
import re
import requests
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

# 基础URL用于拼接完整链接
BASE_URL = "https://www.thepaper.cn"
# 请求头设置(防止反爬)
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'
}

# ----------------------
# 核心修改部分
# ----------------------

def get_secondary_content(url):
    """获取二级页面正文内容"""
    try:
        response = requests.get(url, headers=HEADERS, timeout=10)
        response.raise_for_status()
        soup = BeautifulSoup(response.text, 'html.parser')
        
        # 提取目标div中的p标签内容
        content_div = soup.find('div', class_='index_cententWrap__Jv8jK')
        if not content_div:
            return "内容未找到"
        
        # 提取所有p标签文本并拼接
        paragraphs = [p.get_text(strip=True) for p in content_div.find_all('p') if p.get_text(strip=True)]
        return '\n'.join(paragraphs)
    
    except Exception as e:
        print(f"获取二级页面失败: {url},错误: {str(e)}")
        return "内容获取失败"

def extract_news(html_content):
    """提取新闻数据(新增链接提取)"""
    soup = BeautifulSoup(html_content, 'html.parser')
    results = []

    for card in soup.find_all('div', class_=re.compile(r'small_cardcontent__\w+')):
        # 提取标题
        h2_tag = card.find('h2')
        title = h2_tag.get_text(strip=True) if h2_tag else "无标题"

        # 提取链接
        a_tag = card.find('a', href=True)
        relative_link = a_tag['href'] if a_tag else None
        full_link = f"{BASE_URL}{relative_link}" if relative_link else None

        # 提取时间
        time_span = None
        for p_tag in card.find_all('p'):
            spans = p_tag.find_all('span')
            if len(spans) >= 2 and re.match(r'(\d+[天小时分钟前]+)', spans[1].get_text(strip=True)):
                time_span = spans[1].get_text(strip=True)
                break

        results.append({
            "标题": title,
            "时间": time_span if time_span else "时间未找到",
            "链接": full_link
        })
    
    return results

# ----------------------
# 主流程修改
# ----------------------
if __name__ == "__main__":
    # 初始化浏览器
    driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
    driver.get("https://www.thepaper.cn/channel_25950")

    # 滚动加载逻辑(保持不变)
    last_height = driver.execute_script("return document.body.scrollHeight")
    while True:
        driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
        time.sleep(2)
        new_height = driver.execute_script("return document.body.scrollHeight")
        if new_height == last_height:
            break
        last_height = new_height

    # 获取页面源码
    html = driver.page_source
    driver.quit()

    # 提取新闻列表
    news_list = extract_news(html)
    
    # 清空旧文件
    open("时政.txt", "w", encoding="utf-8").close()

    # 遍历处理每个新闻
    for idx, news in enumerate(news_list):
        # 获取二级页面内容
        content = get_secondary_content(news["链接"]) if news["链接"] else "链接无效"
        
        # 写入文件
        with open("时政.txt", "a", encoding="utf-8") as f:
            f.write(f"标题:{news['标题']}\n")
            f.write(f"内容:{content}\n\n")
        
        print(f"已处理第{idx+1}/{len(news_list)}条: {news['标题'][:20]}...")

    print("所有内容已保存至 时政.txt")

2. 爬取结果

二、案例二:网易每日新闻简报爬取

 (1)数据采集网站

1. 网站名称:网易

2. 网站链接: 每天一分钟知晓天下事

(2)数据介绍

        本次采集的数据为网易 “每天一分钟知晓天下事” 栏目下的新闻简报。数据内容涵盖了从 [起始日期] 至 [结束日期] 期间的每日热点新闻,每条新闻简报包含日期信息以及当日 15 条左右的新闻条目。日期格式统一为 “YYYY 年 MM 月 DD 日 星期 X (农历 XX)”,新闻条目以序号编号,内容简洁明了,涵盖了社会、经济、文化、科技等多个领域的重要资讯。数据以文本(txt)形式存储,结构清晰,每条新闻独占一行,便于后续的数据分析、处理与展示。

(3)数据采集方法 

        本次数据采集基于 Python 语言,利用 requests 库获取网页的 response,当状态码为 200 时,表示网页获取成功。此时,可拿到网页的 html 结构。由于本次采集的数据涉及网页结构中 URL 的嵌套,因此采用 re 正则匹配库匹配所需的字符串(URL),通过循环的方式请求 URL,再根据请求的网页结构继续使用正则匹配的方式获取需要的文本信息

(4)数据采集过程

步骤一:导入requests,re,bs4,tqdm库,分别为发送网络请求、进行正则表达式匹配、网页解析和显示进度条;

import requests
import re
from tqdm import tqdm
from bs4 import BeautifulSoup

步骤二:设定目标网页 URL,配置请求头以模拟浏览器请求,监听状态码判断请求是否成功。若成功,通过 response.text 获取网页的字符串信息,并将其保存至本地文件 “网易.txt” 以便后续分析和处理;

url = 'https://www.163.com/dy/media/T1603594732083.html'

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
    'Referer': 'https://www.163.com/'
}

response = requests.get(url, headers=headers)
response.encoding = 'utf-8'

if response.status_code == 200:
    page_text = response.text
    print(page_text)
    with open("网易.txt", "w", encoding="utf-8") as f:
        f.write(page_text)
else:
print("Request failed with status code:", response.status_code)

步骤三:依据 response.text 的返回结果,运用正则表达式匹配,定位 h4 标签下的 a 标签的 href 属性,从而获取二级网页的 URL 字符串。通过打印输出,可得知匹配到的链接数量;

# 匹配里面的子链接-正则匹配式
pattern = r'<h4[^>]*>[\s\S]*?<a\s[^>]*?href="([^"]*)"'
result = re.findall(pattern, page_text, re.IGNORECASE)

print(f"总共有{len(result)}个链接")  # 107个

步骤四:依次遍历二级网页 URL,采用与步骤二相同的请求方式获取页面内容。利用 BeautifulSoup 定位目标容器,结合正则表达式匹配,分别提取新闻的日期和新闻条目。将提取到的信息按指定格式追加写入至 “网易每日新闻简报.txt” 文件中,同时通过 tqdm 显示进度条;

for index, url in tqdm(enumerate(result[0: 35])):
    response = requests.get(url, headers=headers)
    response.encoding = 'utf-8'
    
    page_text = None
    if response.status_code == 200:
        page_text = response.text
        # print(page_text)
    
    else:
        print("Request failed with status code:", response.status_code)
    
    soup = BeautifulSoup(page_text, 'html.parser')
    
    # 定位到目标容器
    post_body = soup.find('div', class_='post_body')
    
    # 获取第二个<p>标签(索引1)
    target_p = post_body.find_all('p')[1]
    
    # 提取所有文本行(自动处理<br>换行)
    text_lines = [line.strip() for line in target_p.stripped_strings]
    
    # 使用正则匹配日期(兼容不同分隔符)
    date_pattern = re.compile(
        r'(\d{4}年\d{1,2}月\d{1,2}日.*?(?:星期[一二三四五六日]).*?(?:农历.*?))(?:$|\s)'
    )
    date_match = next((line for line in text_lines if date_pattern.match(line)), None)
    
    # 提取新闻条目(兼容全角数字/罗马数字)
    news_pattern = re.compile(r'^(\d+|[\u2160-\u217F])+[\.。]\s*(.*)')
    news_items = [news_pattern.match(line).group(2) for line in text_lines if news_pattern.match(line)]
    
    with open("网易每日新闻简报.txt", "a", encoding="utf-8") as f:
        f.write(f"日期:{date_match}\n")
        f.write(f"新闻条目:\n")
        for i, item in enumerate(news_items, 1):
            f.write(f"{i}. {item}\n")
    print(f"第{index}条链接的新闻简报提取完成!")
(5)完整代码与爬取结果

1. 完整代码

# 每天一分钟,知晓天下事-新闻简报
import requests
import re
from tqdm import tqdm
from bs4 import BeautifulSoup

url = 'https://www.163.com/dy/media/T1603594732083.html'

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
    'Referer': 'https://www.163.com/'
}

response = requests.get(url, headers=headers)
response.encoding = 'utf-8'

if response.status_code == 200:
    page_text = response.text
    print(page_text)
    with open("网易.txt", "w", encoding="utf-8") as f:
        f.write(page_text)
else:
    print("Request failed with status code:", response.status_code)

# 匹配里面的子链接-正则匹配式
pattern = r'<h4[^>]*>[\s\S]*?<a\s[^>]*?href="([^"]*)"'
result = re.findall(pattern, page_text, re.IGNORECASE)

print(f"总共有{len(result)}个链接")  # 107个


# 通过循环的方式继续向链接发起请求信息
# 为了避免一次性发起过多的请求,下面只请求前35条链接
for index, url in tqdm(enumerate(result[0: 35])):
    response = requests.get(url, headers=headers)
    response.encoding = 'utf-8'
    
    page_text = None
    if response.status_code == 200:
        page_text = response.text
        # print(page_text)
    
    else:
        print("Request failed with status code:", response.status_code)
    
    soup = BeautifulSoup(page_text, 'html.parser')
    
    # 定位到目标容器
    post_body = soup.find('div', class_='post_body')
    
    # 获取第二个<p>标签(索引1)
    target_p = post_body.find_all('p')[1]
    
    # 提取所有文本行(自动处理<br>换行)
    text_lines = [line.strip() for line in target_p.stripped_strings]
    
    # 使用正则匹配日期(兼容不同分隔符)
    date_pattern = re.compile(
        r'(\d{4}年\d{1,2}月\d{1,2}日.*?(?:星期[一二三四五六日]).*?(?:农历.*?))(?:$|\s)'
    )
    date_match = next((line for line in text_lines if date_pattern.match(line)), None)
    
    # 提取新闻条目(兼容全角数字/罗马数字)
    news_pattern = re.compile(r'^(\d+|[\u2160-\u217F])+[\.。]\s*(.*)')
    news_items = [news_pattern.match(line).group(2) for line in text_lines if news_pattern.match(line)]
    
    with open("网易每日新闻简报.txt", "a", encoding="utf-8") as f:
        f.write(f"日期:{date_match}\n")
        f.write(f"新闻条目:\n")
        for i, item in enumerate(news_items, 1):
            f.write(f"{i}. {item}\n")
    print(f"第{index}条链接的新闻简报提取完成!")

2. 爬取结果

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

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

相关文章

✨ PLSQL卡顿优化

✨ PLSQL卡顿优化 1.&#x1f4c2; 打开首选项2.&#x1f527; Oracle连接配置3.⛔ 关闭更新和新闻 1.&#x1f4c2; 打开首选项 2.&#x1f527; Oracle连接配置 3.⛔ 关闭更新和新闻

python+vlisp实现对多段线范围内土方体积的计算

#在工程中&#xff0c;经常用到计算土方回填、土方开挖的体积。就是在一个范围内&#xff0c;计算土被挖走&#xff0c;或者填多少&#xff0c;这个需要测量挖填前后这个范围内的高程点。为此&#xff0c;我开发一个app&#xff0c;可以直接在autocad上提取高程点&#xff0c;然…

APM32小系统键盘PCB原理图设计详解

APM32小系统键盘PCB原理图设计详解 一、APM32小系统简介 APM32微控制器是国内半导体厂商推出的一款高性能ARM Cortex-M3内核微控制器&#xff0c;与STM32高度兼容&#xff0c;非常适合DIY爱好者用于自制键盘、开发板等电子项目。本文将详细讲解如何基于APM32 CBT6芯片设计一款…

对象存储(Minio)使用

目录 1.安装 MinIO&#xff08;Windows&#xff09; 2.启动minio服务&#xff1a; 3.界面访问 4.进入界面 5.前后端代码配置 1)minio前端配置 2&#xff09;minio后端配置 1.安装 MinIO&#xff08;Windows&#xff09; 官方下载地址&#xff1a;[Download High-Perform…

yolov11使用记录(训练自己的数据集)

官方&#xff1a;Ultralytics YOLO11 -Ultralytics YOLO 文档 1、安装 Anaconda Anaconda安装与使用_anaconda安装好了怎么用python-CSDN博客 2、 创建虚拟环境 安装好 Anaconda 后&#xff0c;打开 Anaconda 控制台 创建环境 conda create -n yolov11 python3.10 创建完后&…

知识宇宙:技术文档该如何写?

名人说&#xff1a;博观而约取&#xff0c;厚积而薄发。——苏轼《稼说送张琥》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 一、技术文档的价值与挑战1. 为什么技术文档如此重要2. 技术文档面临的挑战 二、撰…

技嘉主板怎么开启vt虚拟化功能_技嘉主板开启vt虚拟化教程(附intel和amd开启方法)

最近使用技嘉主板的小伙伴们问我&#xff0c;技嘉主板怎么开启vt虚拟。大多数可以在Bios中开启vt虚拟化技术&#xff0c;当CPU支持VT-x虚拟化技术&#xff0c;有些电脑会自动开启VT-x虚拟化技术功能。而大部分的电脑则需要在Bios Setup界面中&#xff0c;手动进行设置&#xff…

Java 并发编程高级技巧:CyclicBarrier、CountDownLatch 和 Semaphore 的高级应用

Java 并发编程高级技巧&#xff1a;CyclicBarrier、CountDownLatch 和 Semaphore 的高级应用 一、引言 在 Java 并发编程中&#xff0c;CyclicBarrier、CountDownLatch 和 Semaphore 是三个常用且强大的并发工具类。它们在多线程场景下能够帮助我们实现复杂的线程协调与资源控…

PT5F2307触摸A/D型8-Bit MCU

1. 产品概述 ● PT5F2307是一款51内核的触控A/D型8位MCU&#xff0c;内置16K*8bit FLASH、内部256*8bit SRAM、外部512*8bit SRAM、触控检测、12位高精度ADC、RTC、PWM等功能&#xff0c;抗干扰能力强&#xff0c;适用于滑条遥控器、智能门锁、消费类电子产品等电子应用领域。 …

线性代数中的向量与矩阵:AI大模型的数学基石

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家、CSDN平台优质创作者&#xff0c;高级开发工程师&#xff0c;数学专业&#xff0c;10年以上C/C, C#, Java等多种编程语言开发经验&#xff0c;拥有高级工程师证书&#xff1b;擅长C/C、C#等开发语言&#xff0c;熟悉Java常用开…

打卡第27天:函数的定义与参数

知识点回顾&#xff1a; 1.函数的定义 2.变量作用域&#xff1a;局部变量和全局变量 3.函数的参数类型&#xff1a;位置参数、默认参数、不定参数 4.传递参数的手段&#xff1a;关键词参数 5.传递参数的顺序&#xff1a;同时出现三种参数类型时 作业&#xff1a; 题目1&a…

python训练营day34

知识点回归&#xff1a; CPU性能的查看&#xff1a;看架构代际、核心数、线程数GPU性能的查看&#xff1a;看显存、看级别、看架构代际GPU训练的方法&#xff1a;数据和模型移动到GPU device上类的call方法&#xff1a;为什么定义前向传播时可以直接写作self.fc1(x) 作业 复习今…

人工智能在医疗影像诊断上的最新成果:更精准地识别疾病

摘要&#xff1a;本论文深入探讨人工智能在医疗影像诊断领域的最新突破&#xff0c;聚焦于其在精准识别疾病方面的显著成果。通过分析深度学习、多模态影像融合、三维重建与可视化以及智能辅助诊断系统等关键技术的应用&#xff0c;阐述人工智能如何提高医疗影像诊断的准确性和…

塔能节能平板灯:点亮苏州某零售工厂节能之路

在苏州某零售工厂的运营成本中&#xff0c;照明能耗占据着一定比例。为降低成本、提升能源利用效率&#xff0c;该工厂与塔能科技携手&#xff0c;引入塔能节能平板灯&#xff0c;开启了精准节能之旅&#xff0c;并取得了令人瞩目的成效。 一、工厂照明能耗困境 苏州该零售工厂…

3DMAX插件UV工具UV Tools命令参数详解

常规: 打开UV工具设置对话框。 右键点击: 隐藏/显示主界面。 添加 为选定对象添加展开修改器。 将从下拉菜单中选择映射通道。 Ctrl+点击: 克隆任何当前的修饰符。 右键点击: 找到第一个未展开的修改器。 地图频道 设置展开映射通道。 Ctrl+Click:添加选定的映射通道的展开…

Docker 与微服务架构:从单体应用到容器化微服务的迁移实践

随着软件系统规模和复杂性的日益增长,传统的单体应用(Monolithic Application)在开发效率、部署灵活性和可伸缩性方面逐渐暴露出局限性。微服务架构(Microservice Architecture)作为一种将大型应用拆分为一系列小型、独立、松耦合服务的模式,正成为现代企业构建弹性、敏捷…

《岁月深处的童真》

在那片广袤而质朴的黄土地上&#xff0c;时光仿佛放慢了脚步&#xff0c;悠悠地流淌着。画面的中央&#xff0c;是一个扎着双髻的小女孩&#xff0c;她静静地伫立着&#xff0c;宛如一朵绽放在岁月缝隙中的小花。 小女孩身着一件略显陈旧的中式上衣&#xff0c;布料的纹理间似乎…

文件夹图像批处理教程

前言 因为经常对图像要做数据清洗&#xff0c;又很费时间去重新写一个&#xff0c;我一直在想能不能写一个通用的脚本或者制作一个可视化的界面对文件夹图像做批量的修改图像大小、重命名、划分数据训练和验证集等等。这里我先介绍一下我因为写过的一些脚本&#xff0c;然后我…

RL电路的响应

学完RC电路的响应&#xff0c;又过了一段时间了&#xff0c;想必很多人都忘了RC电路响应的一些内容。我们这次学习RL电路的响应&#xff0c;以此同时&#xff0c;其实也是带大家一起回忆一些之前所学的RC电路的响应的一些知识点。所以&#xff0c;这次的学习&#xff0c;其实也…

30-消息队列

一、消息队列概述 队列又称消息队列&#xff0c;是一种常用于任务间通信的数据结构&#xff0c;队列可以在任务与任务间、 中断和任务间传递信息&#xff0c;实现了任务接收来自其他任务或中断的不固定长度的消息&#xff0c;任务能够从队列里面读取消息&#xff0c;当队列中的…