股票实时数据源API选型与采集实战:从轮询到WebSocket的踩坑指南
一直在做盘中监控类的小工具遇到的第一道坎不是写代码而是“数据从哪来”。我最近在做一个盯盘脚本需要交易时段内每隔几秒拉一批股票的实时价格结果一头扎进常用股票实时数据源API平台对比里才发现这里面的水比想象中深得多有的接口返回JSON用起来还算顺手有的返回一串奇怪的脚本格式解析到怀疑人生有的号称实时实测延迟十几秒还有的直接要求机构资质个人申请基本无门。这篇文章把主流水数据源的分类、字段坑、实测方法和一套可抄作业的采集Demo一起整理出来适合准备做量化回测、自用看盘工具或轻量级监控服务的开发者参考。文章只聊技术接入不构成任何投资建议。1. 先分类再选型股票数据源API四类平台全景对比1.1 四类主流数据源先看底层逻辑第一类HTTP轮询接口。这是最容易入门的通常由财经门户类平台开放请求一次URL就返回一个JSON快照拿到什么就是什么实现门槛几乎为零。我之前用平台A做过一个盯盘脚本核心逻辑就是把返回的字典按字段解析然后丢给告警模块判断。这类接口的特点很鲜明简单、直接、免费额度够个人自用但本质上是“你去问服务器现在多少钱”实时性天然受限。免费额度通常精确到每分钟几次请求真实延迟普遍在2到5秒股票一多轮询一轮就要半分钟盘中基本只能照顾到核心持仓。第二类WebSocket推送服务。平台B是这类里的典型代表建立长连接后服务端会主动把行情推过来延迟能做到几百毫秒甚至更低适合实时曲线、盘口变化、触发式告警这类场景。代价是代码复杂度上了一个台阶要处理心跳、重连、消息去重、增量快照。很多新手以为WebSocket连上就能躺着收数据实际上一旦心跳超时或网络抖动服务端会悄悄断开连接如果不做断线重连和重连后的快照补偿数据流就会默默中断表面看着连接正常实际已经是“死连”。这个坑我踩过也帮别人排查过很多次。第三类历史数据批量下载。回测、数据分析和策略研究用的主要是这类和实时行情完全两个维度。批量数据里最重要的是准确口径前复权、后复权、未复权到底用的哪一种除权日的数据能不能对上停牌日有没有补齐。我见过一个策略在不同数据源上回测收益率差出十几个百分点最后排查下来就是复权因子口径不一致并不是策略本身有什么问题。所以这类型平台宁可慢一点也要优先保证数据口径清晰、可复现。第四类机构类Level-2行情。这是专业量化才会碰的等级十档行情、逐笔委托、逐笔成交都属于这一类延迟最低、数据粒度最细但通常需要开通权限、做实名认证甚至机构报备。个人开发者能直接接触到的机会很少多数时候是通过一些中间服务商间接获取。这类平台的技术接入反而不是最难的部分难的是合规门槛和成本。对小项目来说前期完全没必要硬挤进去等策略验证完了再考虑升级也不迟。这四类理清楚之后选型的逻辑其实就变了不应该问“哪家平台名气大”而应该问“我的场景属于哪一类”。是低频率看个大概还是盘中实时盯变化还是回测历史数据这三件事对平台的要求完全不同。选错类型后面写再多适配代码都救不回来。1.2 判断平台合不合适的五个维度我在实际接入中总结出五个关键判断维度顺序按重要性排实时性、限频额度、字段覆盖、稳定性、成本门槛。实时性不要看文档怎么吹直接盘中实测。我的做法是选3只流动性好的股票连续请求30次把平台返回字段里的时间戳和本地时间做差取中位数再去掉最高最低各10%的极端值。出来的这个中位数就是最接近真实延迟的指标。不少平台自称“实时”实测下来其实在2到5秒之间。限频额度要同时看文档给的数字和实测结果。平台往往写的是“每分钟XX次”但用的是令牌桶模型也就是说你可以在某一秒突发把所有额度打光然后后面几十秒都没有可用额度。设计轮询间隔的时候不要卡着上限跑至少留30%的余量。字段覆盖这件事最容易被忽略。有的平台只有最新价、涨跌幅、成交量没有买卖盘口做不了挂单分析有的平台不提供昨收价涨跌幅你得自己拿前收盘算。我建议在接入前先列一个“必须有”字段清单逐项对照没有就直接放弃省得后面做了一堆准备工作才发现关键字段缺失。稳定性要在一周以上的时间维度里观察。免费接口在盘中高峰期的失败率会明显上升有时候不是你的代码问题而是平台服务端扛不住。我记录每个平台的失败率、超时次数、异常返回次数连续观察一周再决定是否作为常驻数据源。稳定性不是短时间跑几十分钟就能看出来的。成本门槛除了钱还有token有效期、实名验证、调用量限制这些隐性代价。免费额度适合做原型但要做成7x24小时的服务就要考虑token失效自动续期、商用授权这些现实问题。用一个平台前最好把这几件事全部确认一遍。判断维度实测方法个人开发者关注度常见误区实时性盘中多次拿时间戳与本地时间做差高把文档宣称的“实时”当成实际延迟限频额度连续请求看返回码和成功率高按上限设计轮询间隔一超就挂字段覆盖对照需求清单逐项检查极高接入后才发现缺关键字段稳定性持续观察一周的失败率高只看跑通几分钟就放心成本门槛核对token期限和商用条款中忽视授权导致后续麻烦1.3 选型背后的几个“为什么”先说为什么不要只选一个数据源。因为任何平台都可能改接口、限流、下线旧协议这种事没有预告。我在做模拟项目X时一直用同一个免费源某天午后接口突然开始大量返回受限码监控直接瘫痪。后来改成多源适配主用平台A平台B作为降级通道再遇到单点故障至少还能从另一边拿到数据不用干等平台修复。这个经验后来帮我省了很多麻烦哪怕偶尔两家数据不一致也比全员不可用强太多。免费接口延迟为什么普遍偏高也很值得理解。免费服务要控制成本请求链路通常经过汇聚、缓存、过滤再到返回每个环节都在消耗时间。所谓“实时快照”很多时候是某个聚合节点上的统一快照并不是交易所原始行情的直接转发。理解了这一点你就不会对免费接口抱不切实际的期望也不会因为几秒延迟而怀疑自己的代码出了问题。实时行情和历史行情为什么要分开选是另一个常见的认知误区。实时行情要求低延迟和连接稳定历史行情要求准确和口径一致两者目标根本不同。混在一起选很容易出现“实时接口很便宜、历史数据却收费很高”的错位感。正确的思路是用免费实时接口做盘中监控用专业批量数据源做历史回测各取所长不必为单一平台的全套服务支付溢价。2. 字段设计与协议格式决定解析代码能活多久的细节2.1 不同平台行情字段对照跨平台接入最大的体力活就是字段映射。同样是“价格”不同平台的字段名五花八门有的叫price有的叫last有的叫now同样是“成交量”有的单位是手有的单位是股1手等于100股直接拿来算换手率数值就偏大了100倍。这不是平台故意挖坑而是它们各自面向的历史业务不同早期字段设计没有统一标准。我整理了一张常见字段对照表接入新平台时照着核对能少走很多弯路字段含义平台A习惯写法平台B习惯写法平台D习惯写法常见单位或类型坑最新价格price / nowlastclose有的返回字符串有的返回数字涨跌幅change_pct / pctpercentchange_rate字符串可能带百分号要去掉成交量volume / volvolvolume手和股容易混淆1手100股成交额amountturnoveramount元或万元不统一买卖盘口bid / askbid_price / ask_price未必提供档位数差异大注意空值最后成交时间last_timeupdate_timets秒/毫秒、字符串/数字两种坑这张表建议你自己也维护一份每次接入新平台前把对方的字段映射到自己的标准模型里而不是让业务代码直接引用平台字段。如果漏掉这一步以后换数据源时满屏的报错会让你把一整天时间都花在找字段名上而不是写业务逻辑。2.2 协议格式为什么解析代码总在改大多数平台的行情协议是JSON少数老接口会返回类似JavaScript脚本或带回调函数的格式。JSON看着方便实际解析时遇到的各种边界情况一点不少字符串和数字混用、字段缺失、字段顺序变化、停牌时出现特殊占位符等等。最典型的是价格字段平台A返回字符串“10.250”平台B返回数字10.25如果用原生字符串直接比较大小或参与计算在不同平台上的结果就会不一致。我通常会在适配层先统一转成float再进入业务逻辑。时间戳是另一个重灾区。有的接口给秒级数字有的给毫秒级数字还有的给人类可读字符串比如“2025-01-10 15:00:00”。如果直接把两个平台的时间戳做减法数字差距大到完全没法看。我处理这类问题的办法是在适配层统一转成秒级epoch时间戳展示层再做格式化。这样无论上游怎么变下游代码都不受影响。停牌和未开盘时平台不会老老实实返回0有的返回“-”有的返回“--”有的干脆缺这个字段。解析逻辑里一定要有处理这些占位符的分支否则一次异常数据就能让监控脚本疯狂报警。我见过不少只在正常数据下测试通过的解析代码一遇到停牌直接崩这种细节在写需求文档时基本不会有人提全是在上线后才一个一个踩出来。2.3 复权、时区、前后收盘价的隐藏坑复权的坑是最隐蔽的。除权除息日个股价格会出现跳空如果回测用的是未复权数据历史收益会被错误拉高策略信号也会完全走样。前复权是以最新价格为基准调整历史价格后复权是以最早价格为基准调整历史价格两者得到的价格序列不同但收益率一致。关键是回测和实盘必须统一使用同一个复权口径不能混着用。我之前处理一个模拟项目时因为日线接口默认返回前复权数据实盘接口却用的是未复权价格最终信号严重偏差回测里看起来稳赚的策略到了实盘完全对不上。时区的坑主要影响分钟级K线。如果你拿到的数据是UTC时间又不做转换K线的时间轴会整体偏移8小时盘中活跃时段和数据完全对不上。校验方法很简单选一个已知收盘时间的交易日看最后一根K线的时间戳是不是15:00如果不是说明时区转换有问题。前收盘价和昨收价也要单独留意。有的平台在盘中会动态更新昨收集合竞价阶段返回的涨跌幅参考的是旧数据停牌一天后复牌前收盘价又可能被调整。如果要自己计算涨跌幅务必确认基准价来自哪个时间点最好直接用平台返回的单独字段不要拿最新价和前一条K线收盘价硬算。这两个值在除权日往往不一致硬算出来的涨跌幅会吓你一跳。3. 实操搭建一个跨平台实时行情采集Demo3.1 目标与实现思路这里直接给出一套能抄作业的代码骨架整体结构是“适配层加业务层”分离。适配层负责从不同平台拉取原始数据清洗成统一格式业务层只认统一格式不关心数据来自哪个平台。这样做的最大好处是以后换平台、加平台都只改适配代码监控、告警、存储逻辑一行不用动。我用的方案是平台A的HTTP轮询作为默认通道同时留出平台B的WebSocket推送接入位置。如果你手上只有某一个平台直接把另一部分删掉就行不影响整体结构。3.2 环境准备与依赖选择环境建议用Python 3.8以上依赖尽量少这里只需要requests和websocket-client两个库。为什么不用pandas因为当前工作的主力是网络请求、字段清洗、循环调度pandas不仅帮不上忙还会把数据流复杂度抬高。先写最精简的实现等后面需要复杂计算的时候再引入pandas不迟。安装命令如下pip install requests websocket-client安装完成后建议直接把示例代码跑一遍确认环境和网络正常再往下改。3.3 示例代码行情轮询与字段标准化先定义统一的Quote结构。内部字段和含义要固定宁可定义得宽一点也不要让每个平台的原始字段穿透到业务层。import time import requests # 平台A的示例token实际使用时换成你自己的凭据 TOKEN your_token_here BASE_URL https://api.example.com/quote UNIFIED_FIELDS { symbol: , price: 0.0, change_percent: 0.0, volume: 0.0, # 统一为手 amount: 0.0, # 统一为元 last_time: 0, # 统一为秒级epoch时间戳 source: , } def normalize_quote(raw: dict, symbol: str) - dict: 把平台A的原始字段清洗成统一结构。 quote dict(UNIFIED_FIELDS) quote[symbol] symbol quote[source] A # 价格可能是字符串、数字甚至停牌占位符 try: quote[price] float(raw.get(price, 0)) except (TypeError, ValueError): quote[price] 0.0 # 涨跌幅有的带百分号先去掉再转数值 pct raw.get(change_pct) if isinstance(pct, str): pct pct.replace(%, ).strip() try: quote[change_percent] float(pct or 0) except (TypeError, ValueError): quote[change_percent] 0.0 # 成交量统一为手如果字段单位是股需要除以100 try: quote[volume] float(raw.get(volume, 0)) except (TypeError, ValueError): quote[volume] 0.0 return quote def fetch_quote(symbol: str) - dict: 请求平台A的行情快照。 resp requests.get( BASE_URL, params{code: symbol, token: TOKEN}, timeout5, ) resp.raise_for_status() # 不同平台JSON结构不同这里假设数据在data字段里 payload resp.json() return normalize_quote(payload.get(data, {}), symbol) def run_polling(symbols, interval3, retries3): 按固定间隔轮询指定股票集合。 while True: for symbol in symbols: for attempt in range(retries): try: quote fetch_quote(symbol) print(quote) break except Exception as exc: if attempt retries - 1: print(f{symbol} 重试失败: {exc}) else: time.sleep(2 ** attempt) # 1, 2, 4秒退避 time.sleep(interval) if __name__ __main__: # 示例代码上线前替换成你自己关注的标的集合 run_polling([000001, 600000])代码里有几个关键参数值得单独解释。timeout5是常规行情接口的安全边界太短容易把普通网络波动误判成接口异常太长又会让轮询周期失控实测下来5秒比较平衡。重试退避用2 ** attempt也就是1秒、2秒、4秒依次递增不是随便写的瞬间高频重试在限流接口上只会加重问题退避给服务端留出恢复时间成功率反而更高。interval3作为轮询间隔是针对免费token的常见安全值如果额度比较宽裕再改成1到2秒也不迟。统一字段结构之后业务层拿到的永远是一个标准字典不会因为平台A的字段命名习惯而改动告警逻辑。这也是整个Demo里最值得保留的设计。3.4 批量拉取与推送改造方向轮询接口一次请求只返回一个标的时候几十只股票一轮跑下来要很久。可以用线程池适当提速但要控制并发量避免瞬间把token额度打光。from concurrent.futures import ThreadPoolExecutor, as_completed def run_polling_batch(symbols, max_workers5): with ThreadPoolExecutor(max_workersmax_workers) as executor: futures [executor.submit(fetch_quote, s) for s in symbols] for future in as_completed(futures): quote future.result() print(quote)max_workers5是我实测下来比较稳的值对多数免费接口远低于限流阈值又能让20只股票的拉取时间从几十秒缩到几秒。想更激进可以按你的账户额度调整但不要超过文档承诺的并发上限。这里可以看到一个关键思路即使并发也要给请求频率留余量。推送模式的代码走向完全不同。核心是先建立长连接连接成功后发送订阅消息之后收到行情逐条解析同时要考虑心跳保活、掉线重连、断线期间的快照补偿。最小骨架看起来很简单import json import websocket def on_message(ws, message): # 假设平台B推送的是JSON字符串 quote json.loads(message) print(normalize_quote(quote, quote.get(symbol, ))) ws websocket.WebSocketApp( wss://push.example.com, on_messageon_message, ) ws.run_forever()这只是一个起点实际产品里还需要加入心跳定时发送、异常重连、订阅时序校验等逻辑。这也是我建议新手先从轮询入手的原因轮询是“坏了立刻能看见”推送是“坏了往往要过一会儿才发现”排障成本高出一个量级。等轮询版本稳定运行一段时间对数据流有了整体认识再切推送模式会顺很多。4. 常见问题与排查技巧从解析挂掉到延迟超时4.1 高频踩坑记录先说一个我印象最深的坑。某天盘中监控突然连续报警打印日志发现所有股票的最新价全部为0排查了很久才发现当天是某只成分股的复权日平台把停牌前的价格返回成了0解析代码看到0就当成有效数据涨跌幅被计算成-100%等于全仓“归零”闹了个大笑话。从那以后我在清洗层里明确规定价格必须是正数才参与计算0、负数、占位符一律视为异常数据不告警不计算只打日志。第二个坑是成交量单位。平台A返回的volume单位是手平台D返回的默认是股直接拿去做换手率计算数值全部放大了100倍。不是平台故意坑人而是它们各自面向的历史业务不同。接入新数据源时第一件事就是把字段单位确认清楚写进适配层而不是等指标对不上了再回头查。第三个坑是盘中数据漂移。同一只股票在平台A和平台B的实时报价可能不一致一个显示10.25另一个显示10.30往往是因为快照抓取的时间点不同。这时候比拼谁家数据更“准”没有意义你要做的是在告警规则里设置容忍窗口比如连续3次达到阈值才触发提醒避免两个平台轮流报警把你逼疯。第四个坑是token过期。免费接口的token通常有时效到期后返回的错误码五花八门有的返回403有的返回正常结构但字段全空。不要手动更换token正确做法是写一个token管理模块自动检测过期并刷新。4.2 延迟实测方法怎么判断平台到底快不快判断延迟最直接的方法是看平台返回的时间戳和本地时间差多少。不过要注意前一天收盘后的旧数据可能仍然停留在接口上所以测量必须在盘中做。我常用的方法选3只流动性好的股票连续30轮读取快照记录每次的本地时间和返回时间取中位数并去掉最高最低各10%的极端值。这个中位数比平均值更抗噪能够反映真实体验。如果平台没有返回时间戳可以换一个变通方法盯住一个变化频繁的字段比如买一价本地记录时间看它的值多久变化一次。这种办法测的是刷新频率不完全等于延迟但能作为参考。对WebSocket推送可以在消息里带一个本地时间戳然后在接收端统计收到时间差多次采样取中位数。实际测试中平台B的推送中位数通常在几百毫秒平台A的轮询因为请求间隔原因通常在2到5秒之间两者量级完全不同。4.3 各平台问题排查速查表现象可能原因排查重点应急方案返回空字段标的停牌、未开盘或代码写错核对标的代码、休市时间跳过该标的记录日志接口报403/429请求频率超限、token无效检查额度与请求间隔切换备用平台加退避时间戳异常单位或时区不统一与交易所收盘时间对比统一成秒级时间戳行情全为0复权日、停牌、数据拼接错误查看当天除权除息公告过滤无效价格连接频繁断开心跳超时、网络抖动查看服务端主动断开码自动重连并快照补偿偶发乱码/解析失败编码不兼容、字符集不符确认Content-Type与字符集默认UTF-8尝试GBK这张表是通用的具体接入哪家平台最好把对方的错误码也补进去。排查思路无非三步先确认是不是自己的参数问题再看服务端是否是限流和异常返回最后才怀疑数据本身有没有问题。按这个顺序走一般不会白费功夫。5. 我现在的选择与后续扩展思路做完模拟项目X之后我现在的固定组合是平台A负责常驻轮询监控平台B负责盘中实时曲线展示历史回测统一用平台D的批量数据。三者对应不同场景没有再出现“一个数据源包打天下”的困境。踩过几次坑之后我最深的体会是选数据源API的关键不是追求最低延迟而是做好容错和统一抽象。今天能用平台A明天它接口改版了你还能平滑切到平台B这才是架构上真正的价值。后续我打算在现有骨架上加一个本地缓存层每轮拉到的快照先写进内存缓存和SQLite进程重启后优先从缓存恢复避免一启动就大面积重复请求既省流量又稳。再把告警规则从脚本里抽出来做成配置文件不同标的用不同阈值不用反复改代码。等采集数据积累一段时间后还可以把快照和推送数据合并起来做盘后复盘和指标统计。如果你也是刚开始接行情数据我不建议一上来就追求复杂的推送和高频采集。先把轮询适配层打牢把字段标准化、重试退避、异常过滤这些基本功练好再逐步往推送和缓存演进这条路会顺很多。数据源API的可替代性往往比单一家平台的性能参数更重要这也是我在一次次接口改动和限流事故里总结出来的最实用经验。

相关新闻

YARN Capacity Scheduler默认配置全解析:从原理到调优实践

YARN Capacity Scheduler默认配置全解析:从原理到调优实践

1. 从一份空配置文件说起:为什么默认值值得单独拎出来讲很多人第一次接触YARN的Capacity Scheduler,都是被那一堆capacity-scheduler.xml里的配置项劝退的。更让人困惑的是,你打开这个文件,发现里面可能只有寥寥几行,甚…

2026/10/17 15:52:15 阅读更多 →
EasyExcel海量数据导入:分批读取与批量入库实战

EasyExcel海量数据导入:分批读取与批量入库实战

1. 为什么海量 Excel 导入不能一把梭做过后台管理系统的人多半都遇到过这种需求:运营丢过来一个几十万行的 Excel,要求“导入到数据库里,最好今天就能用”。新手的第一反应通常是直接EasyExcel.read(fileName, DemoData.class, new PageReadL…

2026/10/17 15:52:15 阅读更多 →
EasyExcel海量数据分批入库实战:从内存优化到批量写入的完整方案

EasyExcel海量数据分批入库实战:从内存优化到批量写入的完整方案

1. 海量Excel入库这件事,坑比想象中多做过数据导入的人都有一个共识:Excel这东西,小文件是朋友,大文件是敌人。几百行数据用POI的XSSFWorkbook一把梭,代码写起来舒服,跑起来也没毛病。可一旦文件膨胀到几十…

2026/10/17 15:52:15 阅读更多 →

最新新闻

Agent安全审计实战:security-audit-skill技能包设计与findings.json解析

Agent安全审计实战:security-audit-skill技能包设计与findings.json解析

1. 从零拆解 security-audit-skill:一个让 Agent 真正会做安全审计的技能包第一次看到security-audit-skill这个标题,我脑子里蹦出来的不是“又一个安全扫描脚本”,而是一个更具体的问题:怎么让一个通用 Agent 在拿到一份代码仓库…

2026/10/17 23:02:58 阅读更多 →
学习率warm up与cosine decay原理及工程实践

学习率warm up与cosine decay原理及工程实践

1. 这不是调参玄学,而是模型收敛的底层节拍器“学习率设置-warm up与cosine learning rate”——光看标题,你可能觉得这是又一个深度学习调参黑箱里的术语组合。但实际在某实验室做图像分类模型优化时,我亲眼见过一组参数把ResNet-50在ImageN…

2026/10/17 23:02:58 阅读更多 →
AI日报 - 2026年03月13日:用 TaoToken 统一 Key 跑通多工具模型调用

AI日报 - 2026年03月13日:用 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/17 23:01:56 阅读更多 →
ETL设计核心:清洗与转换的业务可信重构方法论

ETL设计核心:清洗与转换的业务可信重构方法论

简介:本资源是一份面向数据工程师、BI开发人员及ETL初学者的系统性实践指南,聚焦BI项目核心环节——ETL全流程设计与落地难点。内容深度解析数据抽取(含多源适配策略:同构/异构数据库链接、文件导入与增量更新)、数据清…

2026/10/17 23:01:56 阅读更多 →
STM32F407与AD9854扫频信号源:HAL库FSMC驱动实践

STM32F407与AD9854扫频信号源:HAL库FSMC驱动实践

简介:面向2023年电赛训练的STM32F407HAL库工程,实现AD9854 DDS模块的正弦波输出与扫频,适合电赛备赛、嵌入式竞赛学习,也适用于对信号源频率平坦度有要求的开发场景。与之前利用DAC/DMA或FPGA ROM生成正弦波不同,该工程…

2026/10/17 23:01:56 阅读更多 →
从div到h1:HTML标签语义化与常用标签详解

从div到h1:HTML标签语义化与常用标签详解

前阵子带一位刚入行的实习生&#xff0c;让他把设计稿切成静态页面。他交上来的代码打开一看&#xff0c;满屏都是<div>&#xff0c;连标题都用<div class"title">加CSS调字号。我问他为什么不直接写<h1>&#xff0c;他犹豫了一下说&#xff1a;“…

2026/10/17 23:01:56 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介&#xff1a;《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南&#xff0c;重点围绕V3与R1两款模型的能力差异与适用场景展开&#xff0c;帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件&#xff0c;压缩包大小约311KB&#xff0c;篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介&#xff1a;这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档&#xff0c;共收录两百余条可直接套用的润色指令&#xff0c;涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度&#xff0c;并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介&#xff1a;本资源是一份基于OpenCV的本科课程设计完整报告&#xff0c;面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生&#xff0c;解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 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/16 21:54:38 阅读更多 →
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/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练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/16 14:23:36 阅读更多 →