Python爬虫实战:构建自动化新闻摘要系统
最近在关注全球热点新闻时发现很多开发者朋友和我一样除了埋头写代码也需要一个高效、稳定的渠道来获取国际资讯用于开阔技术视野或作为项目背景参考。手动从各个新闻网站抓取信息不仅效率低下还容易遇到反爬、格式混乱等问题。本文将围绕如何构建一个自动化的国际新闻摘要系统展开以“BBC News”为例从网络请求、HTML解析、数据清洗到结构化存储手把手带你实现一个可复用的新闻爬虫与处理管道。无论你是想学习Python网络爬虫实战还是需要为你的数据分析项目注入实时新闻源这篇文章都能提供一套完整的解决方案。1. 背景与核心概念为什么需要自动化新闻摘要在信息爆炸的时代高效获取并提炼关键信息是一项重要技能。对于开发者而言手动浏览新闻网站耗时耗力而新闻API服务往往有调用限制或收费。因此掌握从主流新闻网站如BBC News自动化提取内容的技术具有多重价值技术学习这是一个涵盖HTTP请求、HTML解析、正则表达式、数据清洗、持久化存储的综合性实战项目能系统锻炼Python核心库的应用能力。数据源构建可以为自然语言处理NLP、情感分析、趋势预测等项目提供结构化的文本数据源。效率工具一键生成当日要闻摘要节省大量信息筛选时间。理解Web结构通过逆向工程新闻网站的页面结构加深对前端与后端数据交互的理解。我们将模拟这样一个需求每日自动获取BBC News国际版块的头条新闻提取其标题、发布时间、摘要和详细内容链接并清洗整理成一份简洁的报告或存入数据库。本文将以一个具体的新闻标题如“法国西班牙野火致超25万人撤离”为线索演示如何定位并抽取这类信息。2. 环境准备与版本说明本项目主要使用Python因其在数据抓取和处理方面库丰富、语法简洁。以下是我们需要准备的环境和关键库操作系统Windows 10/11, macOS, 或 Linux (如Ubuntu)均可。本文命令以macOS/Linux的bash为例Windows用户可在PowerShell或WSL中运行。Python版本推荐使用 Python 3.8 及以上版本。请确保你的环境已安装Python可通过终端输入python3 --version或python --version检查。核心Python库requests用于发送HTTP请求获取网页HTML内容。beautifulsoup4用于解析HTML文档提取所需数据。lxml作为BeautifulSoup的解析器速度较快。pandas可选用于将提取的数据整理成表格并保存为CSV或Excel文件。开发工具任何你熟悉的代码编辑器或IDE如VS Code、PyCharm等。版本需要根据你的项目实际情况调整本文示例以常见环境为例重点演示配置思路和代码逻辑。你可以通过以下命令一次性安装所需库pip install requests beautifulsoup4 lxml pandas3. 核心组件与原理拆解在开始编码前我们需要理解爬虫工作的几个核心环节及其对应的技术选型。3.1 HTTP请求与requests库我们的第一步是获取BBC News网页的原始HTML代码。这需要通过HTTP协议向服务器发送请求。requests库让这个过程变得非常简单。核心方法requests.get(url, headers, timeout)url: 目标网页的地址。headers: 请求头用于模拟浏览器访问避免被网站简单的反爬机制屏蔽。其中User-Agent是关键字段。timeout: 设置超时时间避免程序长时间等待。为什么需要设置Headers服务器可以通过请求头来判断访问者是一个真实的浏览器还是一个爬虫程序。不添加User-Agent或使用默认的Python-UA可能会被拒绝访问或返回不同的页面内容。3.2 HTML解析与BeautifulSoup拿到HTML文档后它是一长串嵌套的标签文本。我们需要从中精准地定位到新闻标题、链接等元素。BeautifulSoup能将复杂的HTML文档转换成一个复杂的树形结构然后让我们通过标签名、属性、CSS选择器等来遍历和搜索所需内容。核心概念Tag: 对应HTML中的一个标签如div,a,h1。NavigableString: 标签内部的文本。find()与find_all(): 用于查找单个或所有匹配的标签。CSS选择器通过select()或select_one()方法使用类似前端CSS的语法进行更精细的查找推荐。3.3 数据清洗与正则表达式从HTML中提取的文本常常包含多余的空白字符如换行符、制表符、多个空格、或不相关的广告文本。我们需要进行清洗。字符串方法strip(),replace()是基础。正则表达式 (re模块)对于更复杂的模式匹配例如从一段文本中提取日期、从URL中提取ID正则表达式是利器。例如BBC新闻的链接可能包含文章ID我们可以用正则将其提取出来。4. 完整实战案例抓取BBC News头条新闻接下来我们一步步实现一个完整的爬虫脚本。目标从BBC News国际首页https://www.bbc.com/news/world抓取前10条新闻的标题、链接和简介。4.1 分析网页结构在写代码之前手动打开目标网页使用浏览器的“检查元素”Inspect功能分析新闻条目对应的HTML结构。这是爬虫编写中最关键的一步。 通常新闻列表项会包裹在一个具有特定class或id的容器内如div class”gs-c-promo”每条新闻的标题在h3或a标签内链接在a标签的href属性中。4.2 编写核心爬虫代码创建一个名为bbc_news_crawler.py的文件。# bbc_news_crawler.py import requests from bs4 import BeautifulSoup import pandas as pd import re from urllib.parse import urljoin # 用于拼接相对链接为绝对链接 def fetch_bbc_news_headlines(): 抓取BBC News国际版块的头条新闻。 返回一个包含标题、链接、简介的字典列表。 # 1. 定义目标URL和请求头 url https://www.bbc.com/news/world headers { User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 } news_list [] try: # 2. 发送HTTP GET请求 print(f正在请求: {url}) response requests.get(url, headersheaders, timeout10) # 检查请求是否成功 response.raise_for_status() # 如果状态码不是200将抛出HTTPError异常 print(请求成功) # 3. 使用BeautifulSoup解析HTML内容指定lxml解析器 soup BeautifulSoup(response.content, lxml) # 4. 定位新闻列表容器 (根据实际网页结构调整CSS选择器) # 注意网站结构可能更新此选择器需要根据实际情况调整 # 这里以查找包含新闻标题的链接为例更稳健的方法是寻找特定的布局模块 news_items soup.select(a[data-testidinternal-link]) # 这是一个可能的测试属性实际需调整 # 如果上述选择器无效可以尝试更通用的方法例如寻找所有h3标签附近的链接 if not news_items: print(未找到特定测试属性的链接尝试备用方案...) # 备用方案寻找所有包含新闻标题的h3标签然后找其父级或附近的a标签 # 这需要更精细的网页结构分析此处简化为直接找h2, h3标签 potential_headlines soup.find_all([h2, h3], class_re.compile(r.*title.*|.*headline.*, re.I)) for h in potential_headlines: link_tag h.find_parent(a) or h.find_next_sibling(a) if link_tag and link_tag.get(href): news_items.append(link_tag) # 5. 遍历新闻项提取信息 for item in news_items[:15]: # 限制前15条避免太多 # 提取标题通常标题文本在标签内 title_tag item.find([h2, h3, span]) or item title title_tag.get_text(stripTrue) if title_tag else if not title or len(title) 5: # 过滤掉过短或无意义的标题 continue # 提取链接 link item.get(href) if not link: continue # 将相对链接转换为绝对链接 full_link urljoin(https://www.bbc.com, link) # 提取简介/摘要 (可能在同一容器的其他标签内) # 这里需要根据实际结构定位例如找class包含summary或description的p标签 # 由于结构复杂我们这里先简单处理后续可以专门写函数解析详情页 summary # 尝试在item的父级或兄弟节点中寻找摘要 parent_container item.find_parent(div, class_re.compile(r.*promo.*|.*item.*, re.I)) if parent_container: summary_tag parent_container.find(p) if summary_tag: summary summary_tag.get_text(stripTrue)[:150] # 截取前150字符 # 6. 将提取的信息存入字典 news_item { title: title, link: full_link, summary: summary } news_list.append(news_item) print(f已提取: {title[:50]}...) except requests.exceptions.RequestException as e: print(f网络请求出错: {e}) return [] except Exception as e: print(f解析过程出错: {e}) return [] return news_list def save_to_csv(news_data, filenamebbc_headlines.csv): 将新闻数据保存到CSV文件 if not news_data: print(没有数据可保存。) return df pd.DataFrame(news_data) df.to_csv(filename, indexFalse, encodingutf-8-sig) # utf-8-sig支持Excel中文显示 print(f数据已保存至: {filename}) if __name__ __main__: # 执行爬虫 headlines fetch_bbc_news_headlines() # 打印结果 print(f\n共抓取到 {len(headlines)} 条新闻:) for idx, news in enumerate(headlines, 1): print(f{idx}. {news[title]}) print(f 链接: {news[link]}) if news[summary]: print(f 简介: {news[summary]}) print(- * 50) # 保存到文件 save_to_csv(headlines)4.3 运行与初步结果在终端中运行这个脚本python3 bbc_news_crawler.py你会看到控制台输出抓取过程并最终打印出提取的新闻标题和链接同时生成一个bbc_headlines.csv文件。重要提示BBC News的网页结构可能会频繁变动上面代码中的CSS选择器a[data-testidinternal-link]可能很快失效。这是爬虫项目面临的普遍挑战。当脚本无法抓取数据时你需要重新使用浏览器开发者工具分析页面更新选择器逻辑。这是本项目最重要的实践技能之一。4.4 进阶解析单条新闻详情页仅仅获取标题和链接还不够。我们可能还需要新闻的发布时间、正文内容、分类等。这就需要我们根据上一步抓取的链接再次发起请求进入详情页进行解析。下面我们编写一个函数来解析单篇文章# 添加到 bbc_news_crawler.py 中 def parse_article_detail(article_url): 解析单篇BBC新闻文章的详情页获取发布时间和正文。 headers { User-Agent: Mozilla/5.0 ... # 同上 } detail {publish_time: , full_text: } try: resp requests.get(article_url, headersheaders, timeout10) resp.raise_for_status() article_soup BeautifulSoup(resp.content, lxml) # 查找发布时间 (常见位置time标签或特定data属性) time_tag article_soup.find(time) if time_tag and time_tag.get(datetime): detail[publish_time] time_tag[datetime] # 通常是ISO 8601格式 elif time_tag: detail[publish_time] time_tag.get_text(stripTrue) # 查找正文内容 (通常位于article标签或特定class的div内) # BBC的正文可能在属性为data-componenttext-block的div里 text_blocks article_soup.select(div[data-componenttext-block]) full_text_list [] for block in text_blocks: paragraph block.find(p) if paragraph: full_text_list.append(paragraph.get_text(stripTrue)) detail[full_text] .join(full_text_list[:500]) # 限制长度 except Exception as e: print(f解析文章 {article_url} 时出错: {e}) return detail # 修改主函数增加详情抓取可选因为会显著增加请求次数和时间 def fetch_with_details(): base_news fetch_bbc_news_headlines() for news in base_news[:5]: # 只对前5条获取详情避免请求过多 print(f正在获取详情: {news[title]}) details parse_article_detail(news[link]) news.update(details) # 将详情合并到原新闻字典中 time.sleep(1) # 礼貌性延迟避免对服务器造成压力 return base_news5. 常见问题与排查思路在编写和运行新闻爬虫时你几乎一定会遇到以下问题。这里提供系统的排查思路。问题现象常见原因解决思路请求返回状态码 403禁止访问1. 请求头User-Agent被识别为爬虫。2. 网站需要Cookie或简单JavaScript验证。1. 使用更真实的浏览器User-Agent字符串。2. 在headers中添加常见的浏览器头如Accept,Accept-Language。3. 考虑使用requests.Session()维持会话。请求返回状态码 404未找到URL错误或网页已移动。1. 手动在浏览器中打开URL确认。2. 检查代码中URL拼接是否正确。find()或select()返回空列表抓不到数据1. 网页结构已更新CSS选择器或标签名失效。2. 网页内容是JavaScript动态加载的初始HTML中不存在。1.最重要的一步重新用浏览器开发者工具分析页面结构更新选择器。尝试更通用或更具体的路径。2. 如果数据是JS加载的需要寻找隐藏的API接口通过浏览器“网络”标签查看XHR/Fetch请求或使用Selenium、Playwright等工具模拟浏览器。提取的文本包含大量乱码或问号网页编码与解析编码不一致。1. 检查网页原生的meta charset标签。2. 尝试response.content.decode(utf-8)或response.textrequests会自动解码。3. 使用chardet库检测编码。程序运行缓慢或卡死1. 网络延迟。2. 未设置请求超时。3. 循环内频繁请求被暂时限制。1. 为requests.get()设置timeout参数。2. 在循环请求详情页时使用time.sleep(random.uniform(1,3))添加随机延迟模拟人类行为。数据保存到CSV后中文显示为乱码Excel打开CSV时默认编码不是UTF-8。1. 使用pandas保存时指定encodingutf-8-sig。2. 用文本编辑器如VS Code打开CSV文件查看如果正常则是Excel的问题。6. 最佳实践与工程建议将一个小脚本变成可维护、健壮的项目需要遵循一些工程实践。遵守Robots协议在爬取任何网站前访问https://www.bbc.com/robots.txt查看网站是否允许爬虫抓取目标路径。尊重Disallow规则是基本的网络礼仪和法律风险规避。设置请求间隔与限速在循环中请求页面时务必添加延迟例如time.sleep(2)避免对目标服务器造成过大压力这既是道德要求也能防止你的IP被封锁。使用会话Session对于需要多次请求同一域名的场景使用requests.Session()可以复用TCP连接提高效率并自动处理Cookies。异常处理与日志记录像示例代码中那样用try...except包裹网络请求和解析逻辑。此外建议使用Python的logging模块替代print将运行信息、错误记录到文件便于后期排查。配置化将URL、请求头、CSS选择器、文件保存路径等变量提取到配置文件如config.py或config.yaml或命令行参数中。这样当网站结构变化时无需修改核心代码。数据去重与增量抓取在爬取新闻时避免重复存储同一篇文章。可以在存储前检查标题或链接的哈希值是否已存在。对于定时任务可以记录上次爬取的时间只抓取新发布的新闻。考虑使用更专业的工具Scrapy对于大规模、复杂的爬虫项目Scrapy框架提供了更强大的调度、去重、管道处理功能。Selenium/Playwright当目标网站严重依赖JavaScript渲染时这些浏览器自动化工具是唯一选择但它们资源消耗更大。法律与道德边界仅将抓取的数据用于个人学习、研究或公益项目。不要大规模商用、不要侵犯版权、不要干扰网站正常运行。清晰标注数据来源。7. 总结与扩展方向通过本文我们完成了一个从BBC News抓取头条新闻的完整爬虫案例。你学会了如何使用requests获取网页用BeautifulSoup解析HTML用pandas保存数据并了解了爬虫开发中常见的陷阱和解决方案。这个项目可以沿多个方向深化多新闻源聚合将目标扩展到CNN、Reuters、新华社国际版等构建一个比较全面的国际新闻摘要系统。加入自然语言处理对抓取的新闻正文进行关键词提取、情感分析、自动摘要生成更精炼的报告。定时自动化使用crontab(Linux/macOS) 或Task Scheduler(Windows) 设置每日定时任务让脚本自动运行并将结果发送到你的邮箱或钉钉/企业微信。构建Web应用使用Flask或FastAPI搭建一个简单的Web服务提供一个页面来展示每日抓取的新闻摘要。数据可视化分析一段时间内的新闻热点变化用matplotlib或pyecharts生成趋势图。爬虫技术是获取网络公开数据的强大工具但能力越大责任越大。始终以负责任的态度使用它专注于提升效率和学习技术本身。希望这个实战项目能为你打开网络数据获取的大门如果你在实现过程中遇到任何问题欢迎在评论区交流探讨。

相关新闻

【AI大模型应用开发】【项目实战】29.Agent智扫引擎项目-(三)项目/代码架构,数据集介绍,ReAct模块实现,模型选择及实现(Agent模块实现,LLM模型选择及实现)

【AI大模型应用开发】【项目实战】29.Agent智扫引擎项目-(三)项目/代码架构,数据集介绍,ReAct模块实现,模型选择及实现(Agent模块实现,LLM模型选择及实现)

一.项目架构 整体架构如下: 二.代码架构 代码架构如下所示: 在项目开始之前,需要在服务端(或者本机)使用ollama部署模型如下: ollama run qwen3:8b ollama run qwen3:1.7b ollama run gemma3:1b ollama run deepseek-r1:1.5b ollama run bge-m3:latest三.数据集介绍 具体…

2026/8/5 11:58:22 阅读更多 →
构建数据语义层:从OSI模型到AI Agent,破解数据孤岛与语义鸿沟

构建数据语义层:从OSI模型到AI Agent,破解数据孤岛与语义鸿沟

1. 从“数据孤岛”到“语义鸿沟”:一个老问题的现代困境 干了这么多年数据,我越来越觉得,我们这行最头疼的从来不是技术本身,而是“沟通”。你肯定也遇到过这种场景:业务部门指着报表问“这个数是什么意思?…

2026/8/5 11:58:21 阅读更多 →
个体战略操作系统:从能力余量到生态位统治

个体战略操作系统:从能力余量到生态位统治

1. 项目背景与核心概念解析"新一人公司的战略操作系统"这个概念源于当前数字经济时代个体价值崛起的趋势。随着远程办公、自由职业和微型创业的普及,越来越多的专业人士开始以独立个体或极小团队的形式提供高价值服务。这种新型组织形式打破了传统企业架构…

2026/8/5 11:57:21 阅读更多 →

最新新闻

3步掌握iFakeLocation:免费跨平台iOS虚拟定位完全指南

3步掌握iFakeLocation:免费跨平台iOS虚拟定位完全指南

3步掌握iFakeLocation:免费跨平台iOS虚拟定位完全指南 【免费下载链接】iFakeLocation Simulate locations on iOS devices on Windows, Mac and Ubuntu. 项目地址: https://gitcode.com/gh_mirrors/if/iFakeLocation 你是否曾想过瞬间"穿越"到世界…

2026/8/5 12:50:42 阅读更多 →
从 PI 起始页到三大工具的在线帮助打通,SAP PI Online Help 配置实战

从 PI 起始页到三大工具的在线帮助打通,SAP PI Online Help 配置实战

SAP PI 系统有一类配置很容易被低估,平时没人主动关注,一旦现场顾问、开发人员、运维同事需要查对象说明、工具帮助、参数语义,才发现点击 Help 之后不是空白,就是跳到错误地址,或者语言版本完全不对。Configuring Online Help for the PI Tools 讲的正是这件事,它不是消…

2026/8/5 12:50:42 阅读更多 →
特斯拉Model 3/Y CAN总线DBC文件:5个实战技巧快速掌握车辆数据解析

特斯拉Model 3/Y CAN总线DBC文件:5个实战技巧快速掌握车辆数据解析

特斯拉Model 3/Y CAN总线DBC文件:5个实战技巧快速掌握车辆数据解析 【免费下载链接】model3dbc DBC file for Tesla Model 3 CAN messages 项目地址: https://gitcode.com/gh_mirrors/mo/model3dbc 特斯拉Model 3和Model Y的CAN总线数据是连接车辆硬件与软件…

2026/8/5 12:50:42 阅读更多 →
AI驱动的柔性产线重构:某新能源电池厂6周实现订单响应提速400%,关键不在算法而在OT-IT融合协议栈

AI驱动的柔性产线重构:某新能源电池厂6周实现订单响应提速400%,关键不在算法而在OT-IT融合协议栈

更多请点击: https://kaifayun.com 第一章:AI驱动的柔性产线重构:某新能源电池厂6周实现订单响应提速400%,关键不在算法而在OT-IT融合协议栈 传统产线升级常陷入“重AI模型、轻现场联接”的误区。该新能源电池厂在6周内达成订单响…

2026/8/5 12:50:42 阅读更多 →
深入解析ACPI:现代计算机电源管理与硬件配置的核心机制

深入解析ACPI:现代计算机电源管理与硬件配置的核心机制

1. 项目概述:从BIOS到ACPI的演进之路 如果你曾经自己动手装过系统、排查过硬件故障,或者只是好奇地按过F2、Del键进入过那个蓝底白字的界面,那你对BIOS一定不陌生。BIOS,这个计算机开机后第一个运行的程序,就像是电脑硬…

2026/8/5 12:50:42 阅读更多 →
2026年医学SCI润色机构横向测评:临床科研投稿避坑选型指南

2026年医学SCI润色机构横向测评:临床科研投稿避坑选型指南

一、痛点引入:明明研究达标,却因细节错失返修录用机会临床医生、医学硕博、高校科研人员常陷入同一困境:耗费数月完成临床试验、动物造模、数据统计,研究创新度、样本量、实验设计均达到目标期刊标准,最终却因文稿细节…

2026/8/5 12:49:42 阅读更多 →

日新闻

Java缓存框架:JetCache

Java缓存框架:JetCache

TOC 一、简介 JetCache 是一个 Java 缓存抽象框架,为不同的缓存解决方案提供了统一的使用方式。 它提供的注解比 Spring Cache 更加强大。 JetCache 的注解支持原生 TTL、两级缓存以及在分布式环境中的自动刷新功能,同时你也可以通过代码直接操作 Cach…

2026/8/5 0:00:43 阅读更多 →
AD 铺铜设置十字连接,过孔全连接,新版AD的简单设置

AD 铺铜设置十字连接,过孔全连接,新版AD的简单设置

需求:通孔焊盘 十字花;过孔 Via 实心直连;贴片焊盘按需设置 AD 测试版本AD24 很多工程师踩坑:全部统一十字,导致接地过孔阻抗高、大电流发热! 一、快捷键打开规则 PCB 界面按下:D R 展开…

2026/8/5 0:00:43 阅读更多 →
AI素描转换技术深度拆解(2024最新论文+工业级落地代码):从Stable Diffusion ControlNet到LoRA微调全链路解析

AI素描转换技术深度拆解(2024最新论文+工业级落地代码):从Stable Diffusion ControlNet到LoRA微调全链路解析

更多请点击: https://kaifayun.com 第一章:AI生成素描效果 AI生成素描效果是计算机视觉与风格迁移技术融合的典型应用,其核心在于将彩色照片或RGB图像转换为具有手绘质感、明暗对比强烈、边缘清晰的单色素描图像。该过程通常依赖于深度学习模…

2026/8/5 0:00:43 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/4 13:24:41 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/4 11:41:39 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/5 10:20:36 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/4 13:38:24 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/4 11:09:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/4 13:38:40 阅读更多 →