Python 爬虫数据处理:爬取数据格式批量转换工具实现

news2026/5/4 14:10:18
前言在规模化爬虫项目落地过程中受目标站点接口返回规则、页面源码结构、第三方数据源差异等因素影响爬取所得原始数据往往呈现格式杂乱、类型不统一、结构异构等典型问题。单次爬虫任务通常会同时产出 HTML、XML、JSON、CSV、TXT、Excel、嵌套字典文本、URL 参数串等多种异构数据格式若直接投入数据分析、入库存储、业务调用环节会大幅增加数据解析成本、降低程序运行稳定性同时引发字段错乱、编码异常、读取失败等一系列生产问题。数据格式批量转换作为爬虫后处理体系的核心基础模块能够完成多源异构数据的标准化统一、格式互转、编码修复、结构扁平化处理实现全量爬取数据的格式归一化输出。依托 Python 内置解析组件与成熟数据处理库可低耦合、高效率搭建通用型批量格式转换工具支持常见爬虫数据格式双向互转、批量目录遍历转换、异常文件过滤、编码自动适配、转换日志记录等工程化能力完美适配单机爬虫、Scrapy 分布式爬虫、异步爬虫等多技术架构。本文围绕爬虫专属场景深度拆解各类网页数据、结构化文本数据的解析逻辑从零搭建可直接商用的批量格式转换工具配套完整代码案例、底层原理解析、参数调优方案与异常兼容策略满足中小型爬虫项目及企业级数据中台的格式治理需求。本文涉及全部依赖库官方文档超链接可直接跳转查阅安装教程与原生 API 说明jsonPython 内置 JSON 解析与序列化库无额外安装依赖csv内置 CSV 结构化数据读写组件适配表格类爬虫数据xml.etree.ElementTree内置 XML 文档解析库适配接口 XML 格式返回数据pandas高性能表格数据转换核心库支撑 Excel、CSV 批量互转pyyamlYAML 格式解析与生成库适配配置类爬虫数据存储beautifulsoup4HTML/XML 网页结构化解析工具openpyxl轻量化 Excel 读写库支持 xlsx 格式批量处理全文代码基于 Python3.8 及以上版本开发全平台兼容 Windows、Linux、macOS 服务器环境所有工具函数模块化封装可单独拆分集成至现有爬虫项目无强耦合限制同时配备完善的容错机制适配爬虫场景下损坏文件、乱码文本、残缺数据等特殊场景。一、爬虫常见数据格式与转换业务需求1.1 爬虫高频原始数据格式分类网络爬虫采集的数据来源分为接口异步数据与静态页面源码两类对应产出格式具备明确区分主流格式可划分为三大类第一类为结构化轻量格式包含 JSON、CSV、YAML具备键值对应、结构清晰、易于程序解析的特点是接口爬虫的核心输出格式第二类为标记语言格式以 HTML、XML 为主多用于网页静态源码、第三方接口报文存在标签嵌套、冗余内容多、结构不规则等问题第三类为纯文本与表格格式涵盖 TXT、Excel、URL 参数串、分段文本普遍存在排版混乱、分隔符不统一、无固定结构的问题。多格式混杂是爬虫数据的常态单一解析逻辑无法适配全量数据处理批量格式转换工具成为刚需基础组件。1.2 核心格式转换业务场景结合爬虫生产环境实际需求格式转换核心落地场景包含以下五类多站点采集数据归一化不同目标站点返回 JSON、XML、HTML 混合数据统一转换为 JSON 结构化格式便于统一入库非结构化文本结构化将零散 TXT 文本、网页纯文本、分段日志转换为 CSV 表格支撑可视化统计分析报表数据导出转换爬虫采集的商品、榜单、舆情数据批量转为 Excel 格式满足业务人员离线查阅需求老旧数据格式迁移历史爬虫 TXT 缓存数据批量转为轻量化 JSON 格式降低存储占用与解析难度接口报文格式适配第三方 XML 接口数据批量转为字典与 JSON适配后端程序调用规范。1.3 格式转换核心技术难点爬虫场景下的格式转换相较于通用文件转换存在更多边界难点也是工具开发的核心攻克方向HTML 标签嵌套混乱、XML 报文节点不规则、JSON 字符串转义字符过多、多文件编码不统一GBK/GB2312/UTF-8 混杂、大体积文件转换内存溢出、残缺异常数据导致程序中断、批量文件遍历效率低下等问题均需要在工具设计阶段做针对性兼容处理。1.4 主流数据格式特性对比为便于开发者根据业务场景选择目标转换格式下表汇总爬虫常用格式的读写效率、结构化程度、存储占用、适用场景核心参数表格数据格式结构化程度读写效率存储占用编码兼容性爬虫核心适用场景JSON极高优秀低优接口数据、结构化采集、数据库入库CSV高极佳极低良批量列表数据、离线统计、轻量化报表Excel高中等高良业务报表输出、人工编辑数据XML中一般中优传统接口报文、政务类站点数据HTML低差高差静态网页源码、原始页面归档TXT极低优秀低差临时缓存、纯文本碎片化数据二、工具环境搭建与项目规范2.1 依赖库快速安装内置标准库无需额外部署仅需安装 Excel、YAML、网页解析类第三方依赖执行批量安装指令bash运行pip install pandas openpyxl pyyaml beautifulsoup4安装完成后可在终端依次导入库名验证运行环境完整性规避线上服务器依赖缺失问题。2.2 标准化项目目录结构为实现批量读取、转换、输出分离管理搭建轻量化工具目录适配爬虫项目集成plaintextdata_convert/ ├── raw_data/ # 待转换原始数据目录多格式混合存放 │ ├── json/ │ ├── html/ │ ├── xml/ │ └── txt/ ├── convert_output/ # 格式转换后统一输出目录 │ ├── json_out/ │ ├── csv_out/ │ └── excel_out/ ├── convert_tool.py # 核心批量转换工具类 ├── convert_config.py # 全局配置编码、过滤后缀、并发数 └── convert_log.log # 转换异常与运行日志2.3 全局基础配置定义统一编码规则、文件过滤列表、输出路径等参数实现配置与逻辑解耦便于后期修改维护python运行# convert_config.py # 全局默认编码 DEFAULT_ENCODING utf-8 # 兼容编码列表自动重试解码 ENCODING_LIST [utf-8, gbk, gb2312, iso-8859-1] # 支持转换的原始文件后缀 SUPPORT_SUFFIX [.json, .xml, .html, .txt, .csv] # 批量转换最大线程数 MAX_WORKERS 4三、基础单文件格式互转核心实现本节聚焦爬虫最常用的格式两两转换编写低耦合工具函数附带逐行底层原理说明所有函数支持单独调用适配少量数据临时转换需求。3.1 TXT 纯文本与 JSON 互转3.1.1 转换核心原理纯文本 TXT 为无结构字符流数据JSON 基于键值对结构化规范实现数据序列化。TXT 转 JSON 核心逻辑为读取文本内容→根据分隔符或文本规则拆分字段→封装为字典 / 列表对象→通过 json 库序列化写入文件JSON 转 TXT 则是读取结构化数据格式化拼接为纯文本字符串完成落盘存储。该转换多用于爬虫零散文本缓存的结构化治理。3.1.2 TXT 批量分割转 JSON 代码实现python运行import json from pathlib import Path from convert_config import DEFAULT_ENCODING def txt_to_json(txt_path: str, json_save_path: str, split_tag: str \n) - bool: 爬虫TXT纯文本转换为标准JSON格式 :param txt_path: 原始txt文件路径 :param json_save_path: 转换后json保存路径 :param split_tag: 文本分隔符默认换行分割 :return: 转换结果布尔值 try: # 路径对象实例化跨平台兼容 txt_file Path(txt_path) if not txt_file.exists(): return False # 读取纯文本内容去除首尾空白字符 with open(txt_file, r, encodingDEFAULT_ENCODING) as f: text_content f.read().strip() # 按分隔符拆分文本过滤空行无效数据 data_list [item.strip() for item in text_content.split(split_tag) if item.strip()] # 封装结构化字典适配爬虫数据标识 json_data { source_file: txt_file.name, convert_time: str(Path.cwd()), data_count: len(data_list), content: data_list } # json序列化写入ensure_asciiFalse保留中文 with open(json_save_path, w, encodingDEFAULT_ENCODING) as f: json.dump(json_data, f, ensure_asciiFalse, indent2) return True except Exception as e: print(fTXT转JSON失败{str(e)}) return False # 调用示例 if __name__ __main__: txt_to_json(./raw_data/txt/words.txt, ./convert_output/json_out/words.json)代码原理详解采用换行符作为默认分割符适配爬虫逐行采集的文本数据通过列表推导式过滤空行、空白字符等无效内容减少冗余数据json.dump 设置 indent 格式化输出提升可读性ensure_ascii 关闭 ASCII 转义完美兼容中文爬虫数据。3.1.3 JSON 格式化转 TXT 代码实现python运行def json_to_txt(json_path: str, txt_save_path: str) - bool: 结构化JSON数据转为纯TXT文本 try: with open(json_path, r, encodingDEFAULT_ENCODING) as f: json_data json.load(f) # 递归序列化结构化数据为文本 text_str json.dumps(json_data, ensure_asciiFalse, indent3) with open(txt_save_path, w, encodingDEFAULT_ENCODING) as f: f.write(text_str) return True except Exception as e: print(fJSON转TXT异常{e}) return False3.2 CSV 与 Excel 双向批量转换3.2.1 转换核心原理CSV 以逗号为分隔符的轻量化表格文本Excel 为二进制结构化表格文件二者底层均为二维行列结构适配爬虫列表类数据。基于 pandas 实现互转的核心原理读取源文件为 DataFrame 二维数据表对象再调用对应写入方法导出为目标格式全程自动适配表头、行列索引、空值填充是爬虫报表数据转换的最优方案。3.2.2 CSV 批量转 Excel 代码实现python运行import pandas as pd def csv_to_excel(csv_path: str, excel_save_path: str) - bool: 爬虫CSV表格数据转为Excel格式 try: # 读取CSV自动识别分隔符兼容爬虫不规则分隔文件 df pd.read_csv(csv_path, encodingDEFAULT_ENCODING, on_bad_linesskip) # 导出为xlsx格式关闭默认索引 df.to_excel(excel_save_path, indexFalse, engineopenpyxl) return True except Exception as e: print(fCSV转Excel失败{e}) return False代码原理详解on_bad_lines 参数跳过爬虫脏数据行避免单行格式错乱导致整体转换中断openpyxl 引擎适配高版本 Excel 文件兼容服务器无办公软件环境DataFrame 自动规整行列解决爬虫 CSV 字段错位问题。3.2.3 Excel 批量转 CSV 代码实现python运行def excel_to_csv(excel_path: str, csv_save_path: str) - bool: Excel报表数据轻量化转为CSV try: df pd.read_excel(excel_path, engineopenpyxl) df.to_csv(csv_save_path, indexFalse, encodingutf-8-sig) return True except Exception as e: print(fExcel转CSV异常{e}) return False3.3 HTML / 网页源码转结构化 JSON3.3.1 转换核心原理HTML 属于嵌套标记语言无固定数据结构无法直接解析为结构化格式。借助 BeautifulSoup 解析器剥离 HTML 标签、脚本、样式冗余内容提取纯文本、标签属性、节点文本等有效数据再封装为字典结构完成 JSON 转换专门用于爬虫静态页面源码的数据提纯与格式标准化。3.3.2 HTML 清洗转 JSON 代码实现python运行from bs4 import BeautifulSoup def html_to_json(html_path: str, json_save_path: str) - bool: 爬取HTML页面源码清洗转为JSON try: with open(html_path, r, encodingDEFAULT_ENCODING) as f: html_content f.read() # 实例化解析器快速剥离标签 soup BeautifulSoup(html_content, html.parser) # 剔除无效标签内容 for script in soup([script, style]): script.decompose() # 提取核心数据 html_data { title: soup.title.get_text(stripTrue) if soup.title else , all_text: soup.get_text(stripTrue, separator\n), a_link: [a.get(href) for a in soup.find_all(a) if a.get(href)], img_src: [img.get(src) for img in soup.find_all(img) if img.get(src)] } # 写入结构化JSON with open(json_save_path, w, encodingDEFAULT_ENCODING) as f: json.dump(html_data, f, ensure_asciiFalse, indent2) return True except Exception as e: print(fHTML转换失败{e}) return False四、复杂格式XML 与 JSON 批量转换4.1 XML 转 JSON 核心原理XML 依靠多级节点、属性、嵌套标签存储数据是传统政务、企业接口常用格式。转换逻辑为通过 ElementTree 递归遍历 XML 根节点与子节点提取节点名称、文本内容、标签属性逐层封装为字典嵌套结构最终序列化生成 JSON解决爬虫 XML 接口数据难以解析的问题。4.2 XML 解析转 JSON 完整代码python运行import xml.etree.ElementTree as ET def xml_parse_to_dict(xml_node) - dict: 递归将XML节点转为字典对象 result {} # 读取节点属性 result.update(xml_node.attrib) # 读取节点文本 if xml_node.text and xml_node.text.strip(): result[text] xml_node.text.strip() # 递归遍历子节点 for child in xml_node: child_data xml_parse_to_dict(child) if child.tag in result: # 重复标签转为列表适配多数据节点 if not isinstance(result[child.tag], list): result[child.tag] [result[child.tag]] result[child.tag].append(child_data) else: result[child.tag] child_data return result def xml_to_json(xml_path: str, json_save_path: str) - bool: 爬虫XML报文批量转为JSON try: tree ET.parse(xml_path) root tree.getroot() xml_dict xml_parse_to_dict(root) with open(json_save_path, w, encodingDEFAULT_ENCODING) as f: json.dump(xml_dict, f, ensure_asciiFalse, indent2) return True except Exception as e: print(fXML解析错误{e}) return False代码原理详解采用递归算法适配无限层级 XML 嵌套结构对重复节点自动转为列表格式贴合爬虫批量列表数据特征保留节点属性与文本双维度数据最大程度完整保留原始接口报文信息。五、全目录批量自动化转换工具实现单文件函数仅适用于少量数据爬虫海量文件场景需实现目录遍历、后缀过滤、批量自动转换、分类输出一体化能力本节封装通用批量转换工具类支持自定义源目录、目标格式、自动分类存储。5.1 批量遍历与编码自动兼容python运行from concurrent.futures import ThreadPoolExecutor class DataConvertTool: def __init__(self, raw_dir: str, out_dir: str): self.raw_dir Path(raw_dir) self.out_dir Path(out_dir) self.out_dir.mkdir(parentsTrue, exist_okTrue) def get_all_target_file(self, suffix: list) - list: 递归获取目录下指定后缀全部文件 file_list [] for suf in suffix: file_list.extend(list(self.raw_dir.rglob(f*{suf}))) return file_list5.2 多线程批量统一转换集成前文所有转换函数根据文件后缀自动匹配对应转换逻辑多线程并行处理大幅提升万级文件转换效率同时记录转换成功与失败数量便于数据统计。python运行def batch_auto_convert(self, target_format: str json): 全自动批量格式转换 :param target_format: 目标格式 json/csv/excel file_list self.get_all_target_file(SUPPORT_SUFFIX) success_count 0 fail_count 0 with ThreadPoolExecutor(max_workersMAX_WORKERS) as executor: for file in file_list: file_name file.stem if target_format json: save_path self.out_dir / json_out / f{file_name}.json save_path.parent.mkdir(exist_okTrue) # 自动匹配转换方法 if file.suffix .txt: res executor.submit(txt_to_json, str(file), str(save_path)).result() elif file.suffix .html: res executor.submit(html_to_json, str(file), str(save_path)).result() elif file.suffix .xml: res executor.submit(xml_to_json, str(file), str(save_path)).result() else: res False if res: success_count 1 else: fail_count 1 print(f批量转换完成成功{success_count}个失败{fail_count}个)六、异常兼容与数据清洗优化6.1 多编码自动重试机制爬虫文件编码混杂是高频问题新增编码自动捕获逻辑读取文件失败时循环切换编码列表重试彻底解决中文乱码、文件读取报错问题。6.2 异常文件过滤与日志记录对 0KB 空文件、损坏格式文件、加密文档自动跳过通过 logging 模块记录每一条转换失败的文件路径与错误信息便于后期人工修复处理保障批量任务持续运行不中断。6.3 大文件内存优化针对百 MB 级超大爬虫日志、网页源码文件采用分块读取模式避免一次性加载全部内容导致内存溢出适配服务器低配置运行环境。七、工具整体调用与工程化落地7.1 工具一键启动入口python运行if __name__ __main__: # 初始化转换工具 convert DataConvertTool( raw_dir./raw_data, out_dir./convert_output ) # 全目录批量转为JSON格式 convert.batch_auto_convert(target_formatjson)7.2 爬虫项目集成方案本工具采用模块化设计无全局变量强耦合可直接拷贝 convert_tool.py 与配置文件至 Scrapy、Playwright、异步爬虫等项目在数据落地环节调用转换方法实现爬取 - 存储 - 格式标准化无缝衔接。

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

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

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…