VISA控制仪器例程:从SCPI到Python产线级实现
简介一套面向仪器控制与自动化测试的VISA例程适合需要借助USB、LAN、GPIB或COM接口与测量设备交互的开发者参考尤其适合刚接触VISA编程的入门者。例程基于C实现演示了打开VISA资源、发送命令到读取返回数据的完整流程重点展示visaWrite与visaRead等核心API的用法并包含错误处理逻辑可帮助快速掌握VISA编程框架与真实仪器的通信调试方法。压缩包共15个文件大小约195KB核心包含C源代码、Visual Studio工程文件、编译生成的可执行程序以及调试符号如.pdb/.obj等既可用于理解工程构建过程也可直接运行查看控制效果。已有2854人学习下载不少读者借此理解了不同接口下仪器控制程序的典型组织方式。包内未见独立说明文档但工程结构清晰结合源码逐步调试即可作为从零搭建VISA控制程序的实用参考。1. VISA控制仪器的例程先搞懂它在自动化测试里到底管哪一段接手产线上一台电源厂家自带的调试软件点两下就能输出电压但要写进每天跑的自动化测试脚本时很多人却卡住了。网上搜 VISA控制仪器的例程拉下来十有八九是同一副面孔资源列表扫不到设备或者能读到仪器身份信息却在第二条命令上直接超时。先别急着怀疑代码水平VISA 本身不是某个厂家私有的驱动而是一个跨总线的仪器接口标准。它把 GPIB、USB、LAN、串口这些物理上完全不同的连接方式统一成“打开资源、写入命令、读取结果、关闭资源”这一套动作。本篇要讲的例程就是在这套标准上写一个能改、能排查、能直接挪到产线脚本里的控制样例。适合自动化测试开发、产测脚本工程师以及想用 SCPI 命令操作仪器但被总线细节劝退的嵌入式开发者。理解了它的分层和资源字符串后面遇到的所有坑都能顺着线索查清楚。2. 动手前的三件事VISA 实现选型、资源字符串与 SCPI 基础2.1 软件开发包里VISA 到底扮演什么角色从软件栈上看VISA 处于测试程序和物理总线之间。你写的代码调用 VISA 的 APIVISA 实现再通过后端的总线驱动把数据送到 GPIB 卡、USB-TMC 设备或者网络接口上。仪器返回的字节流再沿着同一条路回到你的缓冲区里。VISA 本身不解析你的命令是什么意思也不关心你测的是电压还是温度。它只负责两件事建立一个可靠的会话通道以及把命令和响应一字不差地搬过去。之所以要用这一层而不是直接对网口仪器开一个 TCP socket是因为一套 VISA 例程可以覆盖多种连接方式。今天仪器用网线明天换 USB 或 GPIB只要资源字符串改一下后面的代码基本不用动。自己用 socket 写换了总线就得重写底层而商业 VISA 实现里还帮你处理了超时、仪器锁定、状态字节读取和错误事件这些边界要是自己造轮子每一件都会变成血泪经验。一个容易被忽略的点VISA 是一套 API 标准不同厂家有不同实现。你的代码面对的是同一个 API 外形但底层后端可能相差很大。所以例程跑不通时先判断是哪一层的问题——是应用层命令写错了还是总线后端根本没识别到设备这是排查的第一步。2.2 选型商业 VISA 套件和纯软后端怎么搭配当前可选的 VISA 实现大概分两类。一类是商业 VISA 套件安装后自带完整的协议栈、驱动搜索、交互控制台和 IO 日志功能对 USB-TMC、GPIB、VXI 这类总线支持最全是测试机上的常用选择。另一类是纯软后端装在用户态不需要安装庞大的驱动包就能访问串口和 TCPIP 资源适合临时环境、容器或没有 GUI 的 Linux 机器。我的习惯是工作机上装一个商业 VISA 套件作为默认后端Python 绑定库直接用系统里已经注册好的 VISA 动态库到了受限环境再改用纯软后端去访问网络仪器。这里有条重要规矩一台机器只保留一套商业 VISA 实现。两台不同版本的 VISA 库并存时容易发生动态库抢占或路径覆盖现象就是“设备管理器里能看到仪器但程序一打开资源就崩”。装完还要留意架构一致64 位 Python 必须对接 64 位 VISA 库否则会出现莫名其妙的“资源管理器初始化失败”。选型时还要考虑你控制的仪器类型。纯软后端对常见 LXI 网口仪器够用但遇到老式 GPIB 或 USB 仪器厂家通常只提供针对自家 VISA 的驱动接口这时候没有商业套件几乎寸步难行。所以别一上来就追求最小化先把机器上的 VISA 基线统一了再去谈例程优化。2.3 看懂 VISA 资源字符串每个分隔符都有意义VISA 资源字符串是仪器的门牌号例程跑不起来多半是门牌号写错。常见的资源字符串有几种用表格列一下物理接口资源字符串示例关键字段含义GPIBGPIB0::1::INSTR接口卡号 0仪器地址 1LAN / LXITCPIP0::192.168.1.20::INSTR网络接口 0IP 地址INSTR 表示 VXI-11 或 LXI 通道LAN / 裸 SocketTCPIP0::192.168.1.20::488::SOCKET直接连接仪器 488 端口需要自己处理结束符USB-TMCUSB0::0x0957::0x9009::MY5501::INSTR厂商 ID、产品 ID、序列号由仪器固件决定串口ASRL3::INSTR串口资源编号从 0 开始对应系统里的 COM 口注意INSTR和SOCKET的区别。INSTR表示仪器具备完整的 VXI-11 或 USBTMC 语义程序可以按 SCPI 的请求-响应方式通信SOCKET是裸的网络端口相当于你用 Telnet 连上去没有仪器语义封装。资源字符串里的数字不是随便写的接口号、GPIB 地址、IP 地址都要与仪器面板或上位机工具里的设置一致。写例程时先把目标资源的真实字符串从工具里复制出来再写进代码而不是凭印象敲。2.4 最小交互发送*IDN?看回的是什么SCPI 是建立在 VISA 之上的仪器命令语言绝大多数程控仪器都认*IDN?这条“身份查询”命令。它可能是你与仪器打的第一声招呼。把这一条跑通说明 VISA 通道、SCPI 解释器和结束符设置三者都没问题。在交互控制台里手动发一次*IDN? ACMEPower,DP832,CN2024001,1.0.8返回的字段一般用逗号分隔厂商、型号、序列号、固件版本。如果回的是0,0,0一类空壳数据说明命令已经到达仪器但固件没有实现完整的 SCPI 身份信息这不代表通道故障。最小交互的意义在于验证一次成功的*IDN?查询比写十行业务逻辑更能说明底层环境正常。在正式例程里每条写操作之后建议补一条*OPC?查询再进入下一步。*OPC?会在仪器处理完此前所有挂起的命令后返回 1是天然的同步屏障。老工程师常说的“命令发太快”问题大多就是少了这层同步。SCPI 错误队列里的SYST:ERR?也应该养成随手读的习惯它能告诉你仪器为什么拒绝上一条命令。把这些基础动作先刻进例程骨架里后面写什么功能都少翻车。3. 用 Python 写一个能直接改的 VISA 控制例程3.1 环境准备安装绑定库和后端Python 之所以适合做仪器控制快速原型是因为绑定库把 VISA 的 C 接口包装成了几行代码。先安装绑定库pip install pyvisa安装完成不代表能直接连仪器。绑定库本身只是一个翻译层真正干活的是后端的 VISA 实现。如果机器上已经安装了商业 VISA 套件通常无需额外配置绑定库会自动加载系统里的 VISA 动态库。如果什么都不装直接调用ResourceManager()很可能会得到一张空列表。验证后端是否被识别用这段代码import pyvisa rm pyvisa.ResourceManager() print(可用资源:, rm.list_resources())能打印出资源列表说明后端和绑定库已经接上列表为空优先查 VISA 库位数是否和 Python 一致以及设备驱动是否被系统识别。注意这里的表面现象非常迷惑人有时代码没有任何报错但列表就是空的原因几乎都出在“Python 是 64 位VISA 库却装了 32 位”这类架构错配上。3.2 最小连接例程枚举、打开、握手拿到了资源字符串就可以写最小连接例程。下面这段代码做了四件基础的事创建资源管理器、打开指定资源、发*IDN?握手、最后释放资源。import pyvisa rm pyvisa.ResourceManager() resources rm.list_resources() print(检测到资源:, resources) inst rm.open_resource(TCPIP0::192.168.1.20::INSTR) inst.timeout 5000 # 单次读写超时单位毫秒 inst.read_termination \n # 读到换行符视为一条响应结束 # 身份查询绝大多数 SCPI 仪器都支持 resp inst.query(*IDN?) print(仪器返回:, resp) inst.close() rm.close()打开资源后timeout和read_termination是最该先设置的两个参数。timeout5000表示读写操作最多等五秒避免仪器无响应时程序死扛。read_termination\n告诉 VISA 读取时以换行符作为结束边界如果没有这一行很多仪器会一直读到超时或者把多条响应粘在一起。最后的close()不是可有可无的收尾漏掉它会导致会话句柄泄漏尤其是长时间产测脚本泄漏到一定程度就会触发“设备被占用”错误。3.3 控制电源的完整例程配置输出并回读设置最小例程只验证了通路真正控制仪器还需要写 SCPI 命令。以常见的可编程直流电源为例完整流程是复位到已知状态、关输出、设置电压和限流、打开输出、回读确认。import pyvisa import time rm pyvisa.ResourceManager() psu rm.open_resource(TCPIP0::192.168.1.20::INSTR) psu.timeout 8000 psu.read_termination \n # 先复位到已知状态再关闭输出避免带电误操作 psu.write(*RST) psu.query(*OPC?) # 等待复位动作彻底完成 psu.write(OUTP OFF) # 设置电压 12V、限流 3A psu.write(VOLT 12.0) psu.write(CURR 3.0) psu.write(OUTP ON) # 回读电压设置值确认命令确实生效 set_v psu.query(VOLT?) print(电压设置:, set_v) # 实测输出电压可能因电源上升速率有迟滞轮询等待稳定 for _ in range(10): meas_v psu.query(MEAS:VOLT?) if abs(float(meas_v) - 12.0) 0.01: break time.sleep(0.2) print(输出电压稳定在:, meas_v) psu.write(OUTP OFF) psu.close() rm.close()这段例程里有三个值得留意的细节。第一*RST之后紧跟*OPC?是为了确保复位完成后再发出配置命令很多电源的复位过程要几百毫秒不等就直接写配置命令会被丢进缓冲区而得不到执行。第二VOLT?回读的是设定值不是实际输出值要确认真实电平必须查MEAS:VOLT?。第三轮询里用了 0.01V 的容差这是相对值要根据被测电源的精度指标改不能照抄。3.4 四个直接影响成功率的参数把例程从一个人手里交到另一个人手里跑不跑得通经常就卡在参数上。这几个参数我用一张表列清楚修改时需要按仪器手册来参数作用建议典型坑timeout单次读写最长等待时间500010000ms设太短大波形读取必然失败read_termination响应结束符多数仪器为\n设错会把多条响应拼成一帧write_termination命令结束符多数仪器为\n老式 GPIB 仪器可能只要\rquery_delay命令发出后到读取前的延时00.5s机械开关类仪器必须加query_delay是最容易被忽略的一个。按键式继电器或机械切换类仪器收到命令后需要物理动作时间VISA 写入返回快但并不代表仪器已经切好了。这种情况下查询响应会提前触发读回的是旧状态。它和*OPC?不是替代关系*OPC?等的是仪器内部程序处理完query_delay等的是物理动作完成。遇到继电器矩阵、射频开关这类设备宁可多等不可少等。4. VISA 控制仪器最常见的 5 个坑现象、原因、解决办法4.1 设备灯亮着资源列表里就是找不到它现象仪器通电正常网络能 ping 通但list_resources()返回空列表或者只有系统里其他无关的串口。原因分两类。USB 接口仪器往往是缺少对应的 USB-TMC 驱动系统只识别成一个普通 USB 设备VISA 后端自然看不到它。网络接口仪器则是 LXI/VXI-11 服务没开启或者仪器被配置成了私有协议模式VISA 通过标准端口扫描不到。解决先确认设备在系统设备管理器里有没有以 TMC/USB Test and Measurement 类别出现如果没有重装仪器的 USB 驱动或换一根直连的 USB 口。网络仪器进入前面板或网页配置页找到“VISA/LXI 服务”开关确保 VXI-11 的默认端口 111 被启用不要用 Wi-Fi 中继或者中间路由器做端口隔离。4.2 能查*IDN?一执行配置命令就报错现象query(*IDN?)一切正常但执行write(VOLT 12.0)后下一次查询直接抛出异常或者返回-420这类 SCPI 错误码。原因基本是命令语法和仪器模型不匹配。同一条VOLT命令单通道电源和四通道电源写法不一样多通道设备通常需要INST:CH1或VOLT CH1,12.0这类通道前缀。另一个常见原因是仪器还处于上一条命令的忙状态新的指令到达后被拒绝。解决遇到报错先读错误队列执行SYST:ERR?查询仪器会用文字告诉你具体的原因这是最直接的黑匣子打开方式。其次查这本仪器的《编程手册》确认该型号支持的命令树不要拿另一个品牌的例程直接套。最后在每条配置之后补*OPC?把异步命令改成同步握手。4.3 同一台仪器第一次能读第二次就超时现象写在循环里的query()第一次成功第二次开始超时程序反复卡死在读取位置。原因通常不是 VISA 库损坏而是结束符设置不一致导致响应粘连。第一次读取时如果read_termination没配对VISA 会把一小段残留留在缓冲里第二次读取时程序先读到的是上一轮残留内容而真正的新响应还在路上时序就乱了。解决确保返回数据的结束符和read_termination一致就一台仪器逐字节确认。可以用十六进制视图观察第一次读到的原始字节如果发现结尾没有0x0A说明结束符设错了。每条写命令后加*OPC?强制排队同步也能减少大多数随机超时。真遇到仪器忙不要盲目把超时改成 30 秒那只是把症状掩盖了。4.4 读波形、日志等长数据时数据被截断现象示波器波形读取或固件日志抓取时得到的字节数忽多忽少解析后波形明显不完整。原因VISA 底层按当前可用的数据量分片返回。对于大体积响应一次read()很可能只读到第一个 TCP 分片而 VISA 的默认缓冲区又不够大于是例程拿到一部分数据就满意返回了。二进制块格式#90000001024这种长度前缀通常又没被正确处理。解决设置chunk_size为大值例如inst.chunk_size 1024 * 1024按块传输协议先读出长度再循环读取直到收满。用query_binary_values并指定数据类型和容器的做法更稳妥它把循环读取的过程封装在绑定库内部。不要用read_raw()加固定长度这么天真网络延迟一抖动就会翻车。4.5 同一程序多次打开设备句柄泄漏现象例程运行一段时间后设备越来越慢最终报“资源被占用”重启程序才恢复。原因程序异常退出时没有调用close()VISA 会话在系统层面仍被占用。GPIB 仪器尤其敏感会话未释放时仪器会一直处于“远程锁定”状态前面板按键都失效。并发场景下多个线程同时对同一资源open_resource()也会触发设备忙。解决用with语句管理会话让退出时自动关闭with pyvisa.ResourceManager() as rm: with rm.open_resource(TCPIP0::192.168.1.20::INSTR) as inst: inst.query(*IDN?)另外在测试结束时给仪器发送一句回到本地控制的命令比如 GPIB 的GTL或者发SYST:LOC免得仪器在远程模式下被下一个测试任务误判为故障。4.6 把这些坑前置打开 VISA IO 日志再调试排查到最后最有效率的手段不是猜而是看 IO 日志。大多数商业 VISA 套件都自带交互控制台和 IO 监控日志能逐条记录程序向仪器发过的每一个字节以及仪器返回的每一个字节。遇到例外情况先打开日志复现一次对比你“以为发了的命令”和“真正发出去的命令”差一个空格、差一个换行符都能在日志里现形。日志里重点看三个地方命令尾部送的到底是\n还是\r\n仪器返回的结束符是什么每次读取是从第一条响应开始还是从残留开始。把这三点对齐所谓的 VISA 玄学问题九成都会变成一眼能看穿的配置问题。5. 把例程改成能扛住产线的版本重试、错误码与验证5.1 带错误码和重试的封装函数例程能在本地跑通只是一半放进产线脚本里任何一台机器都可能遇到瞬时抖动。我会在例程外面再包一层带重试的封装把 VISA 错误码和操作绑在一起import pyvisa import time class VisaDevice: def __init__(self, resource, timeout5000): self.rm pyvisa.ResourceManager() self.inst self.rm.open_resource(resource) self.inst.timeout timeout self.inst.read_termination \n def query_with_retry(self, cmd, repeat3, delay0.2): last_error None for attempt in range(repeat): try: return self.inst.query(cmd).strip() except pyvisa.VisaIOError as exc: last_error exc time.sleep(delay) raise last_error重试逻辑不是简单把命令再发一遍。网络瞬时超时时第二次尝试通常会成功但如果是仪器命令本身错了重试只会把错误日志刷屏。所以封装里把每次错误码透传出来最终归一到调用方的判定里去。重试一般两到三次足够超过三次还失败说明环境有问题继续重试只会浪费时间。5.2 用交互控制台和 IO 日志验证你的例程工程上还有一个习惯我一直在用例程改完不要只跑一遍就收工。打开 VISA 交互控制台手动发一遍例程里的关键命令序列再回放一遍任务日志确认两边的命令顺序完全一致。重点检查收尾状态输出是否关闭、仪器是否回到本地模式、会话是否释放。我个人的教训是很多年前一次产线联测临近下班没关电源输出第二天一上班发现板子烧了。从那以后封装的析构里永远有OUTP OFF和会话释放跑完不恢复现场的程序坚决不上线。这套把重试、状态清理和日志验证合并进来的习惯希望帮到你。本文还有配套的精品资源点击获取

相关新闻

Nmap端口扫描实战:从协议原理到企业级资产测绘

Nmap端口扫描实战:从协议原理到企业级资产测绘

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 1:24:07 阅读更多 →
Proteus仿真实战:从原理图到单片机LED点亮全程指南

Proteus仿真实战:从原理图到单片机LED点亮全程指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 1:24:07 阅读更多 →
STM32F407寄存器版ADC双通道DMA采集详解与代码实现

STM32F407寄存器版ADC双通道DMA采集详解与代码实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 1:24:07 阅读更多 →

最新新闻

信创招标要求写在哪一节_96万的燃气项目

信创招标要求写在哪一节_96万的燃气项目

10 月 12 日,焦作市公共资源交易中心公示了一个城市燃气安全监测服务项目的中标结果。金额不大——96 万元,中标方是中国移动通信集团河南有限公司焦作分公司,评审总得分 93.92。项目内容是对市区 150 处燃气领域相邻空间节点建设全覆盖、全天…

2026/10/14 2:02:18 阅读更多 →
Cadence Cerebrus 用户指南:强化学习驱动的数字后端 PPA 自动调优实战

Cadence Cerebrus 用户指南:强化学习驱动的数字后端 PPA 自动调优实战

简介:Cadence Cerebrus User Guide 是面向电子设计自动化工程师与技术人员的官方操作指南,聚焦 Cadence Cerebrus 工具在芯片设计流程优化中的实际应用。该指南对应产品版本 22.1x,最后更新于 2023 年 12 月,内容涵盖工具特定指令…

2026/10/14 2:02:18 阅读更多 →
astropy SAMP Hub 启动与停止完全指南:三种方式详解与底层原理

astropy SAMP Hub 启动与停止完全指南:三种方式详解与底层原理

科学计算科研数据分析 【免费下载链接】astropy Astronomy and astrophysics core library 项目地址: https://gitcode.com/gh_mirrors/as/astropy 点击查看 免费下载 导读 SAMP(Simple Application Messaging Protocol,简单应用消息协议&a…

2026/10/14 2:02:18 阅读更多 →
Knative Eventing 跨命名空间事件链接(Cross Namespace Event Links)特性全解析

Knative Eventing 跨命名空间事件链接(Cross Namespace Event Links)特性全解析

文档教程云原生 【免费下载链接】docs User documentation for Knative components. 项目地址: https://gitcode.com/gh_mirrors/docs1/docs 点击查看 免费下载 Knative Eventing 从 1.15 版本起引入了 cross-namespace-event-links 实验特性,允许 Trig…

2026/10/14 2:02:18 阅读更多 →
NPO光引擎替掉4.8万个光模块_买的是什么

NPO光引擎替掉4.8万个光模块_买的是什么

1. 引言:一次「不追求更快」的互联替换华为在 HUAWEI CONNECT 2026 上发布的 Ascend 960 SuperPoD,宣传语是「业界首个基于近封装光学(NPO)的超节点」。它给了一组很好算的数字:约 5500 个 Hi-ONE 光引擎,替…

2026/10/14 2:02:18 阅读更多 →
基于Vue3+SpringBoot的前后端分离电商系统设计与实现:以雪地装备销售平台为例

基于Vue3+SpringBoot的前后端分离电商系统设计与实现:以雪地装备销售平台为例

简介:一套基于Vue.js、SpringBoot与MySQL构建的雪地装备销售系统成品源码,面向计算机专业毕业设计或课程设计场景,可直接作为高评分项目提交。系统覆盖商品展示、搜索、购买、订单处理、支付接口及用户注册登录等完整电商流程,采用…

2026/10/14 2:01:18 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →