当前位置: 首页 > article >正文

极验滑动验证码自动化实战:背景提取、缺口定位与Playwright滑动模拟

滑动验证码自动化实战背景提取、缺口定位与Playwright滑动模拟一、前言在爬虫自动化、Web端自动化测试、业务流程自动化等场景中人机验证是保障系统安全的重要防线也是自动化流程中最常见的“拦路虎”。极验Geetest作为国内领先的行为验证码厂商其第四代自适应滑动验证码凭借动态防护、行为轨迹校验、环境检测等多重技术成为众多网站的首选验证方案。与传统静态验证码不同极验滑动验证码通过“拖动滑块填充缺口”的交互方式结合用户行为特征判断是否为人类操作大幅提升了机器破解的难度。本文以极验官方自适应验证测试页面https://www.geetest.com/adaptive-captcha为实战靶场全程聚焦技术实战与合规性完整讲解滑动验证码背景图的精准提取、缺口坐标定位思路以及基于Playwright的拟人化鼠标滑动模拟实现不依赖第三方解码平台、不提供违规API接入代码助力开发者掌握滑动验证码自动化的核心逻辑与实操方法。本文适合具备Python基础、了解Playwright基本用法的开发者阅读通过本文学习可掌握滑动验证码自动化的核心流程能够独立完成背景提取、缺口定位与滑动模拟的全流程开发适配各类基于极验滑动验证码的自动化场景。二、极验滑动验证码核心机制解析2.1 极验滑动验证码的核心防护逻辑极验第四代自适应滑动验证码摒弃了传统验证码“单纯图片识别”的防御模式构建了“AI动态风控行为特征校验环境检测”的立体防护体系其核心防护逻辑主要包括以下4点动态图片生成后台会实时生成不同的背景图与缺口组合每小时更新数十万组图片通过视觉偏差、异构视差等设计避免黑产通过图片库穷举、模板匹配等方式破解。行为轨迹校验全程采集用户拖动滑块过程中的核心数据包括鼠标按下坐标、移动轨迹、速度变化、加速度、停留时间等生成唯一的行为指纹通过AI算法判断是否为人类的自然操作机器模拟的轨迹往往过于规整缺乏人类操作的随机性。环境风险检测自动识别当前运行环境是否存在异常包括Headless浏览器、模拟器、IP代理、设备信息篡改等一旦检测到异常环境会直接提升验证难度或拦截验证请求。加密参数校验滑动完成后前端会生成加密参数如w参数并将其提交至后端后端通过解密参数、校验轨迹合法性与图片匹配度最终判断验证是否通过。2.2 滑动验证码的核心组成元素要实现滑动验证码的自动化首先需要明确其页面结构极验滑动验证码主要由3个核心元素组成也是我们自动化操作的关键目标背景图对应CSS类名.geetest_bg这是带有缺口的完整背景图片缺口的位置就是滑块需要拖动到的目标位置也是我们后续进行缺口定位的核心载体。滑块图对应CSS类名.geetest_slice待拖动的拼图块其形状与背景图中的缺口完全匹配拖动过程中会跟随鼠标移动释放后与缺口对齐则验证成功。滑动触发按钮对应CSS类名.geetest_btn_click用于触发滑动验证码加载的交互按钮点击后会加载背景图、滑块图进入滑动验证环节。自动化的核心目标的本质的是精准提取背景图 → 定位缺口与滑块起始位置的横向距离 → 模拟人类的自然滑动轨迹将滑块拖动至缺口位置完成验证。其中背景图的提取是整个流程的基础——无论是自主实现缺口定位还是后续对接相关工具都需要以提取到的背景图作为定位依据。三、环境准备与依赖安装3.1 核心依赖库说明本文实战所用到的核心工具与依赖库均为Python生态中常用的合规工具无任何违规依赖具体如下Playwright微软开源的浏览器自动化工具支持Chromium、Firefox、WebKit等浏览器能够精准模拟鼠标点击、拖动、键盘输入等人类操作相比Selenium其稳定性更强、执行速度更快且对动态页面的适配更好是模拟滑动操作的核心工具。requestsPython常用的HTTP请求库用于发送请求下载滑动验证码的背景图片。re正则表达式Python内置模块用于从背景图元素的style属性中提取图片URL。opencv-python numpy可选用于图像处理自主实现缺口定位后续会详细讲解定位思路。3.2 依赖库安装步骤打开终端执行以下命令完成所有依赖的安装# 安装Playwright核心库pipinstallplaywright# 安装Playwright对应的浏览器驱动本文使用Chromiumplaywrightinstallchromium# 安装requests库用于下载图片pipinstallrequests# 可选安装图像处理依赖用于自主实现缺口定位pipinstallopencv-python numpy四、滑动验证码背景图精准提取核心实战4.1 提取思路解析极验滑动验证码的背景图并非直接以img标签的形式加载而是通过CSS的background-image属性嵌入到页面元素中。因此我们无法直接通过定位img标签获取图片URL只能通过以下步骤提取使用Playwright打开极验测试页面触发滑动验证码加载。定位到背景图对应的元素.geetest_bg获取其style属性值。通过正则表达式从style属性中提取background-image对应的图片URL。使用requests库发送请求下载图片并保存到本地用于后续的缺口定位。这一步是整个滑动验证码自动化的基础也是最关键的步骤之一——只有精准提取到背景图才能后续进行缺口定位进而完成滑动模拟。4.2 完整提取代码与详细解析以下是背景图提取的完整代码。importreimportrequestsfromplaywright.sync_apiimportsync_playwrightdefextract_geetest_bg_image(): 提取极验滑动验证码背景图并保存到本地 :return: 背景图保存路径 # 启动Playwright使用Chromium浏览器headlessFalse表示显示浏览器便于调试withsync_playwright()asp:# 启动浏览器实例headlessFalse用于调试上线后可改为True无界面运行browserp.chromium.launch(headlessFalse)# 创建新的浏览器上下文隔离不同的会话contextbrowser.new_context()# 打开新的页面pagecontext.new_page()# 访问极验滑动验证码测试页面page.goto(https://www.geetest.com/adaptive-captcha)# 等待页面加载完成强制等待1秒避免页面未加载完成导致元素定位失败page.wait_for_timeout(1000)# 点击“滑动验证”标签切换到滑动验证页面对应CSS类名.tab-item-1page.click(.tab-item-1)# 等待标签切换完成避免元素未渲染page.wait_for_timeout(1000)# 点击滑动触发按钮加载滑动验证码背景图、滑块图page.click(.geetest_btn_click)# 等待验证码加载完成滑动验证码加载需要一定时间等待2秒确保加载成功page.wait_for_timeout(2000)# 定位背景图元素CSS类名.geetest_bgele_imgpage.locator(.geetest_bg)# 获取背景图元素的style属性值包含background-image的URLimg_styleele_img.get_attribute(style)# 使用正则表达式提取style中的图片URL# 正则匹配规则匹配url(xxx)格式提取括号内的URL内容ele_pngre.compile(rurl\((.?)\))# 提取图片URLfindall返回列表取第一个元素即为目标URLimg_urlele_png.findall(img_style)[0]print(f成功提取背景图URL{img_url})# 下载背景图并保存到本地try:# 发送HTTP请求获取图片内容设置超时时间避免请求卡住responserequests.get(img_url,timeout10)# 验证请求是否成功状态码200表示成功response.raise_for_status()# 以二进制模式打开文件写入图片内容保存为1.png可自行修改保存路径withopen(1.png,wb)asf:f.write(response.content)print(背景图下载完成保存路径./1.png)return./1.pngexceptExceptionase:print(f背景图下载失败{str(e)})returnNone# 调用函数执行背景图提取if__name____main__:extract_geetest_bg_image()4.3 常见问题与解决方案在背景图提取过程中开发者可能会遇到各种问题以下是最常见的3个问题及对应的解决方案帮助大家快速排查问题问题1元素定位失败NoSuchElementException。原因页面加载速度过慢或者元素选择器错误。解决方案延长等待时间调整page.wait_for_timeout的参数如改为2000通过浏览器开发者工具F12检查元素的CSS类名是否正确确保.locator(“.geetest_bg”)能够精准定位到背景图元素。问题2正则提取不到图片URL。原因style属性格式发生变化正则匹配规则不适用。解决方案打印img_style的值查看background-image的格式如是否为url(‘xxx’)、无引号等调整正则表达式如将r’url(“(.?)”)‘改为r’url(’(.?))适配无引号或单引号的情况。问题3图片下载失败请求超时、403禁止访问。原因极验对图片请求进行了Referer校验或者IP被限制。解决方案在requests.get中添加请求头模拟浏览器请求如添加Referer、User-Agent更换IP或暂停请求避免被反爬限制。补充添加请求头的示例代码修改requests.get部分可有效解决403禁止访问问题headers{User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36,Referer:https://www.geetest.com/# 必须添加Referer模拟页面内请求}responserequests.get(img_url,headersheaders,timeout10)五、缺口定位思路自主实现无需第三方工具提取到背景图后下一步就是定位缺口的位置——缺口的X坐标横向坐标是我们计算滑动距离的核心依据纵向坐标基本固定无需重点关注。目前自主实现缺口定位的思路主要有两种分别适用于不同的场景开发者可根据自身需求选择。5.1 思路一基于图像对比的缺口定位推荐核心原理极验滑动验证码的背景图本质是“完整图片”与“缺口图片”的合成缺口区域与周围区域的像素值存在明显差异如亮度、灰度不同。通过图像处理技术对比图片的像素差异即可定位到缺口的位置。具体实现步骤基于opencv-python读取下载的背景图将其转换为灰度图减少颜色干扰提高定位精度。对灰度图进行高斯模糊处理去除图片噪声避免误判。使用Canny边缘检测算法提取图片的边缘信息缺口区域的边缘会更加明显。通过轮廓检测找到缺口对应的轮廓计算轮廓的中心点X坐标即为缺口的目标位置。核心代码片段仅展示定位逻辑可自行整合到完整脚本中importcv2importnumpyasnpdeffind_gap_position(bg_path): 基于图像对比定位背景图中缺口的X坐标 :param bg_path: 背景图保存路径 :return: 缺口X坐标 # 读取背景图imgcv2.imread(bg_path)# 转换为灰度图graycv2.cvtColor(img,cv2.COLOR_BGR2GRAY)# 高斯模糊去除噪声ksize为奇数sigmaX为标准差blurcv2.GaussianBlur(gray,(5,5),0)# Canny边缘检测minVal、maxVal可根据实际图片调整edgescv2.Canny(blur,50,150)# 轮廓检测cv2.RETR_EXTERNAL表示只检测最外层轮廓contours,_cv2.findContours(edges,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)# 遍历轮廓筛选出缺口对应的轮廓缺口轮廓面积、宽高比有明显特征forcntincontours:# 计算轮廓的 bounding rectangle外接矩形x,y,w,hcv2.boundingRect(cnt)# 筛选条件缺口的宽高比大致为1:1面积在一定范围内可根据实际图片调整if30w60and30h60and0.8w/h1.2:# 缺口的X坐标为外接矩形的中心点X坐标gap_xxw//2print(f成功定位缺口X坐标{gap_x})returngap_xprint(缺口定位失败请调整参数或检查图片)returnNone5.2 思路二基于像素阈值的缺口定位简单易实现核心原理缺口区域的像素亮度通常比周围区域更亮或更暗通过设置一个像素阈值遍历图片的横向像素找到像素值突变的位置即为缺口的起始位置。具体实现步骤读取背景图转换为灰度图。遍历图片的每一列横向计算每一列的平均像素值。当某一列的平均像素值与相邻列的差值超过设定阈值时该列即为缺口的起始位置进而计算出缺口的中心点X坐标。这种方法的优点是代码简单、无需复杂的图像处理知识缺点是定位精度略低于图像对比法适用于缺口与背景差异较大的场景。5.3 缺口定位注意事项定位参数调整无论是图像对比法还是像素阈值法都需要根据实际下载的背景图调整参数如Canny边缘检测的阈值、轮廓筛选的面积范围因为极验的背景图是动态生成的不同图片的缺口大小、亮度可能存在差异。坐标校准页面中的背景图可能存在缩放如自适应页面定位到的图片像素坐标需要转换为页面的实际坐标可通过Playwright获取背景图元素的宽高计算缩放比例进行坐标校准。抗干扰处理部分背景图可能存在与缺口像素差异相似的区域需要通过多轮筛选如轮廓形状、面积、位置避免误判缺口位置。六、基于Playwright的拟人化滑动模拟核心实战完成背景图提取和缺口定位后最关键的一步就是模拟人类的鼠标滑动操作——极验的行为轨迹校验机制对滑动轨迹的自然度要求极高过于规整的滑动轨迹如匀速滑动会被判定为机器操作导致验证失败。因此我们需要模拟人类滑动的特征先加速、再匀速、最后减速同时加入轻微的横向波动让轨迹更接近人类操作。6.1 滑动模拟核心思路滑动模拟的核心是“模拟鼠标的按下→移动→释放”三个动作关键在于控制移动轨迹的自然度具体思路如下定位滑块元素.geetest_slice获取滑块的起始X坐标滑块的初始位置是固定的可通过元素定位获取。根据缺口X坐标计算滑块需要滑动的总距离总距离 缺口X坐标 - 滑块起始X坐标 - 校准值校准值用于修正定位误差。模拟鼠标按下滑块鼠标左键按下不释放。分阶段移动鼠标第一阶段加速移动速度逐渐加快第二阶段匀速保持稳定速度移动第三阶段减速移动速度逐渐减慢最终到达缺口位置。释放鼠标左键完成滑动操作等待验证结果。6.2 完整滑动模拟代码与解析以下代码整合了背景图提取、缺口定位、滑动模拟的全流程重点优化了滑动轨迹的自然度加入了随机波动和速度变化避免被极验的行为校验拦截importreimportrequestsimportcv2importnumpyasnpimportrandomfromplaywright.sync_apiimportsync_playwrightdefextract_geetest_bg_image(page):提取背景图并保存复用页面实例避免重复启动浏览器# 定位背景图元素获取style属性ele_imgpage.locator(.geetest_bg)img_styleele_img.get_attribute(style)# 正则提取图片URLele_pngre.compile(rurl\((.?)\))img_urlele_png.findall(img_style)[0]# 下载图片headers{User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36,Referer:https://www.geetest.com/}responserequests.get(img_url,headersheaders,timeout10)withopen(1.png,wb)asf:f.write(response.content)return./1.pngdeffind_gap_position(bg_path):定位缺口X坐标基于图像对比法imgcv2.imread(bg_path)graycv2.cvtColor(img,cv2.COLOR_BGR2GRAY)blurcv2.GaussianBlur(gray,(5,5),0)edgescv2.Canny(blur,50,150)contours,_cv2.findContours(edges,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)forcntincontours:x,y,w,hcv2.boundingRect(cnt)if30w60and30h60and0.8w/h1.2:returnxw//2returnNonedefsimulate_human_slide(page,gap_x): 拟人化滑动模拟 :param page: Playwright页面实例 :param gap_x: 缺口X坐标 # 定位滑块元素sliderpage.locator(.geetest_slice)# 获取滑块的起始位置页面坐标slider_bboxslider.bounding_box()ifnotslider_bbox:print(滑块定位失败)return# 滑块起始X坐标页面坐标start_xslider_bbox[x]slider_bbox[width]//2start_yslider_bbox[y]slider_bbox[height]//2# 计算滑动总距离减去校准值避免定位误差total_distancegap_x-start_x-5# 校准值可根据实际情况调整iftotal_distance0:print(滑动距离异常)return# 模拟鼠标按下滑块按下后不释放page.mouse.move(start_x,start_y)page.wait_for_timeout(random.randint(50,150))# 按下前轻微停顿模拟人类思考page.mouse.down()page.wait_for_timeout(random.randint(30,80))# 按下后停顿模拟人类发力准备# 分阶段滑动加速→匀速→减速# 加速阶段移动总距离的30%速度逐渐加快accelerate_distanceint(total_distance*0.3)foriinrange(accelerate_distance):# 速度逐渐增加加入轻微横向波动speedrandom.uniform(1.5,3.5)i*0.02xstart_xi# 轻微纵向波动模拟人类操作的不稳定性ystart_yrandom.randint(-2,2)page.mouse.move(x,y,steps1)page.wait_for_timeout(int(10/speed))# 匀速阶段移动总距离的50%速度保持稳定uniform_distanceint(total_distance*0.5)foriinrange(uniform_distance):speedrandom.uniform(2.5,3.5)xstart_xaccelerate_distancei ystart_yrandom.randint(-2,2)page.mouse.move(x,y,steps1)page.wait_for_timeout(int(10/speed))# 减速阶段移动剩余距离速度逐渐减慢decelerate_distancetotal_distance-accelerate_distance-uniform_distanceforiinrange(decelerate_distance):speedrandom.uniform(1.0,2.5)-i*0.03ifspeed0.5:speed0.5xstart_xaccelerate_distanceuniform_distancei ystart_yrandom.randint(-2,2)page.mouse.move(x,y,steps1)page.wait_for_timeout(int(10/speed))# 释放鼠标完成滑动page.wait_for_timeout(random.randint(30,80))page.mouse.up()print(滑动模拟完成等待验证结果)# 等待验证结果可根据页面提示调整等待时间page.wait_for_timeout(2000)# 主函数整合全流程if__name____main__:withsync_playwright()asp:browserp.chromium.launch(headlessFalse)contextbrowser.new_context()pagecontext.new_page()page.goto(https://www.geetest.com/adaptive-captcha)page.wait_for_timeout(1000)page.click(.tab-item-1)page.wait_for_timeout(1000)page.click(.geetest_btn_click)page.wait_for_timeout(2000)# 1. 提取背景图bg_pathextract_geetest_bg_image(page)ifnotbg_path:browser.close()exit()# 2. 定位缺口X坐标gap_xfind_gap_position(bg_path)ifnotgap_x:browser.close()exit()# 3. 模拟拟人化滑动simulate_human_slide(page,gap_x)# 关闭浏览器browser.close()6.3 滑动模拟关键优化点提升验证成功率极验的行为轨迹校验是自动化验证的核心难点以下几个优化点能够大幅提升滑动验证的成功率避免被判定为机器操作加入随机停顿在鼠标按下前、按下后、释放前加入随机时长的停顿50-150ms模拟人类操作的思考和发力过程避免操作过于连贯。分阶段速度变化严格按照“加速→匀速→减速”的规律滑动人类拖动滑块时速度不会保持恒定而是有一个自然的加速和减速过程。轻微波动在滑动过程中加入轻微的纵向波动±2像素模拟人类操作时的手部抖动避免轨迹过于规整。速度随机化每个阶段的滑动速度都加入随机值避免每次滑动的速度完全一致进一步提升轨迹的自然度。坐标校准由于背景图可能存在缩放定位到的缺口像素坐标需要根据页面元素的实际大小进行校准避免滑动距离偏差。七、实战优化与常见问题排查7.1 整体流程优化建议在实际项目中为了提升自动化的稳定性和成功率可对上述流程进行以下优化复用浏览器实例避免每次提取背景图、滑动模拟都重新启动浏览器减少资源占用提升执行速度。增加异常重试机制当缺口定位失败、滑动验证失败时自动刷新页面、重新触发验证重试次数可设置为3-5次。参数动态调整根据不同的页面环境、背景图动态调整缺口定位参数如Canny阈值和滑动速度参数适配不同场景。环境伪装通过Playwright设置浏览器的User-Agent、语言、分辨率等信息模拟真实用户环境避免被极验检测到自动化环境。7.2 常见问题与排查方案在实战过程中除了背景图提取的问题外还可能遇到以下问题结合实际经验给出排查方案问题1滑动后验证失败提示“拖动滑块有误请重新拖动”。原因滑动轨迹不自然、缺口定位偏差、滑动速度过快/过慢。解决方案调整滑动轨迹的速度变化和波动范围重新校准缺口定位参数修正滑动距离增加停顿时间避免操作过于急促。问题2滑块定位失败bounding_box()返回None。原因滑块元素未加载完成或者元素选择器错误。解决方案延长等待时间确保滑块加载完成通过浏览器开发者工具检查滑块的CSS类名是否正确。问题3多次滑动均失败被判定为机器操作。原因环境被检测到如Headless模式、滑动轨迹过于固定。解决方案将headless改为False使用可视浏览器增加滑动参数的随机性避免每次滑动轨迹完全一致设置浏览器的真实分辨率和User-Agent。问题4背景图下载后无法定位缺口。原因图片下载不完整、图片格式异常。解决方案检查图片下载是否完整打开图片确认在requests.get中添加超时处理和请求头确保下载的图片完整可用。八、总结与拓展本文以极验滑动验证码为实战案例完整讲解了滑动验证码自动化的核心流程——背景图提取、缺口定位、Playwright拟人化滑动模拟全程聚焦自主实现不依赖第三方解码平台和违规API兼顾技术实用性与合规性。滑动验证码自动化的核心难点不在于代码的编写而在于对极验防护机制的理解和行为轨迹的模拟。通过本文的学习开发者可以掌握如何从动态页面中提取核心图片资源、如何通过图像处理技术自主定位缺口、如何模拟人类的自然滑动轨迹从而实现滑动验证码的自动化突破。拓展方向多场景适配将本文的代码适配到不同网站的极验滑动验证码调整元素选择器、定位参数和滑动参数实现通用化。轨迹优化结合机器学习分析人类滑动轨迹的特征生成更接近人类的滑动轨迹进一步提升验证成功率。多验证类型适配极验还有点选、图文验证等类型可基于本文的思路拓展其他类型验证码的自动化实现。需要注意的是滑动验证码自动化技术仅用于合法的自动化测试、业务流程自动化等场景严禁用于爬虫攻击、恶意破解等违规违法活动。开发者应遵守网站的 robots 协议和相关法律法规尊重网站的安全防护机制共同维护网络环境的安全与稳定。关注我了解更多爬虫知识和实战经验~~

相关文章:

极验滑动验证码自动化实战:背景提取、缺口定位与Playwright滑动模拟

滑动验证码自动化实战:背景提取、缺口定位与Playwright滑动模拟 一、前言 在爬虫自动化、Web端自动化测试、业务流程自动化等场景中,人机验证是保障系统安全的重要防线,也是自动化流程中最常见的“拦路虎”。极验(Geetest&#…...

OpenAI Agents SDK 中文实战指南:从入门到多代理协作

1. 为什么你需要OpenAI Agents SDK 第一次接触这个SDK时,我正为一个客户设计智能客服系统。传统方案需要写大量if-else逻辑判断用户意图,而Agents SDK的多代理协作机制让我眼前一亮——就像组建了一支各有所长的AI团队,数学问题自动转交数学专…...

OpenClaw安全加固:Phi-3-vision服务接口的权限控制实践

OpenClaw安全加固:Phi-3-vision服务接口的权限控制实践 1. 为什么需要安全加固? 上周我在本地部署了Phi-3-vision多模态模型,通过OpenClaw实现了一个智能图片分析工作流。但当我用手机测试时,意外发现任何人都能通过公网IP访问我…...

测试小白福音:在快马上通过实战代码轻松攻克软件测试面试题

作为一名刚入门的软件测试新手,面对各种面试题时常常感到一头雾水。最近我发现了一个特别实用的学习方法 - 通过动手实践来理解测试理论。今天就来分享一下我的经验。 从基础概念入手 刚开始学习时,我连黑盒测试和白盒测试的区别都搞不清楚。后来发现&…...

国内网站 SEO 推广需要多长时间见效

国内网站 SEO 推广需要多长时间见效 在当今互联网时代,搜索引擎优化(SEO)已经成为提升国内网站流量和品牌知名度的关键手段。很多人都会问,国内网站 SEO 推广需要多长时间才能见效?答案并不简单,因为这涉及…...

2026届必备的十大降重复率工具实测分析

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 维普 AIGC 检测系统,是特意为学术机构还有研究者用心设计的,它的主要…...

2026届学术党必备的十大降重复率工具推荐

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 当下,各种各样的降AI工具纷纷出现,其关键功能是借助文本改写、句式重…...

Mac开发者必备:OpenClaw对接Qwen3-32B实现Xcode日志自动分析

Mac开发者必备:OpenClaw对接Qwen3-32B实现Xcode日志自动分析 1. 为什么需要自动化Xcode日志分析 作为一个长期与Xcode打交道的iOS开发者,我每天至少有2小时耗在编译错误和运行时日志的排查上。那些冗长的符号化崩溃日志、晦涩的Swift类型推断错误、以及…...

无感方波控制方案-脉冲启动与凸极性电机保护功能全面标题:‘无感方波方案-无抖动无反转启动...

无感方波方案,无感启动无抖动,无反转,启动方式为脉冲注入检测位置,换相方式为AD比较器,电机要有一定凸极性 ,电机要有一定凸极性,电机要有一定凸极性! 软件做有各种保护功能&#x…...

LabVIEW调用VisionPro框架代码:VisionPro labview 2020版

LabVIEW调用VisionPro框架代码 VisionPro labview 2020 最近在折腾LabVIEW和VisionPro的联动开发,发现这俩工业视觉领域的老搭档配合起来确实能玩出不少花样。今天咱们就聊聊怎么在LabVIEW 2020里直接调用VisionPro框架的代码,手头有工控机的朋友可以直接…...

如何为 3D 轮播文本添加可点击的 URL 链接

...

2026 AI行业封神之年:国产模型反超海外,AI短剧/视频/编程三大赛道掘金指南

2026年,AI行业正式迈入工业化落地的关键拐点,不再是技术圈的自嗨,而是全面渗透进写作、设计、影视、开发的各行各业。想抓住这波时代红利,又不想在数十个平台间反复横跳?https://n.kulaai.cn 给出了最优解——这个一站式AI模型聚合平台,直接把ChatGPT、Claude、Gemini、D…...

Windows下OpenClaw安装指南:对接Phi-3-vision-128k-instruct图文模型

Windows下OpenClaw安装指南:对接Phi-3-vision-128k-instruct图文模型 1. 为什么选择OpenClawPhi-3-vision组合 去年我在处理大量图文混排的学术资料时,发现传统自动化工具难以理解图片中的表格和公式。直到尝试将OpenClaw与多模态模型结合,…...

如何在phpMyAdmin中根据结果集生成图表_折线图与柱状图的可视化展示

phpMyAdmin 不支持折线图或柱状图,新版已移除 Charts 标签页,旧版仅依赖弃用的 jpgraph 库支持极简饼图;可行方案是导出 CSV 后用 Excel 或 Chart.js 等外部工具绘图。phpMyAdmin 本身不支持折线图或柱状图phpmyadmin 是一个数据库管理工具&a…...

AI设计抗体,成功率低怎么办?从David Baker新论文看RFdiffusion的三大局限与未来优化方向

AI抗体设计的三大技术瓶颈与突破路径:从RFdiffusion的实践启示 抗体药物市场正以惊人的速度扩张,预计2025年将达到4450亿美元规模。在这个充满机遇的领域,AI技术正在改写传统抗体开发的游戏规则。David Baker团队最新发表在bioRxiv的研究成果…...

如何高效使用付费墙绕过工具:Chrome扩展的完整实践指南

如何高效使用付费墙绕过工具:Chrome扩展的完整实践指南 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在信息获取日益重要的今天,付费墙成为许多用户访问优质…...

【需求改变与测试如何】

需求一旦修改,测试该如何进行呢? 最近面临的项目,经过很多次需求更改或者是前期没有需求,实际操作起来,让人很是头疼,恰到也看到大家也有着相同的讨论。 来源于微信公众号:测试论道学习&#x…...

萌新梦开始的地方

大家好,我是一名双非本科的大一新生,目前就读于计算机科学与技术这个专业,平时的兴趣爱好就是听听歌,健健身,这是我写的第一篇博客,我想以此来作为我学习编程的开始,同同时也以此来见证我在编程…...

实战演练:基于Next.js与快马AI接口,构建可交互的qoderwork官网演示版

今天想和大家分享一个实战项目:用Next.js模拟搭建qoderwork官网,并集成快马AI的代码生成能力。这个项目特别适合想学习全栈开发的朋友,既能练手Next.js,又能体验AI接口的集成。 项目整体设计思路 这个模拟官网主要包含两大核心功…...

obsidian claudian 插件配置使用minimax模型

首先,打开.claude/settings.json文件 sudo gedit .claude/settings.json参考官网配置 “ANTHROPIC_BASE_URL”: “https://api.minimaxi.com/anthropic”, “ANTHROPIC_AUTH_TOKEN”: “MINIMAX_API_KEY”, 等参数然后在claudian插件中在配置一遍,即可正…...

C++的std--ranges视图转换函数异常安全与资源清理在惰性求值中的处理

C的std::ranges视图转换函数异常安全与资源清理在惰性求值中的处理 现代C引入的std::ranges库为序列操作提供了声明式编程支持,其中视图转换函数(如transform、filter等)通过惰性求值优化性能。惰性求值机制与异常安全、资源清理的交互可能引…...

FinalBurn Neo终极指南:如何打造完美的复古游戏体验

FinalBurn Neo终极指南:如何打造完美的复古游戏体验 【免费下载链接】FBNeo FinalBurn Neo - We are Team FBNeo. 项目地址: https://gitcode.com/gh_mirrors/fb/FBNeo FinalBurn Neo(简称FBNeo)是一款开源街机游戏模拟器,…...

CTFshow-PWN实战:利用NOP Sled绕过栈保护获取Shell

1. 理解NOP Sled技术原理 NOP Sled(空操作雪橇)是二进制漏洞利用中的经典技术,特别适合应对地址随机化(ASLR)或栈地址不确定的情况。它的核心思想就像滑雪场里的缓冲坡道——通过布置大量无操作指令(NOP&am…...

10-项目规划测试代码审查实战

10-项目规划、测试、代码审查实战使用 Cursor 完成软件工程全流程:项目规划、测试驱动开发、代码审查与质量保障。一、AI 驱动项目管理概述 1.1 全流程覆盖 项目启动↓ 需求分析 → AI 辅助需求拆解↓ 技术方案 → AI 生成架构设计↓ 任务分解 → AI 生成任务清单↓…...

三相四桥臂APF的双闭环控制的simulink仿真图,用的是Matlab2018a,可以看出

三相四桥臂APF的双闭环控制的simulink仿真图,用的是Matlab2018a,可以看出,控制前电网电流THD值达24%,中线电流10A,经过PID控制以后降低到了5%以下,母线电压稳定在800v,中线电流降为2A 随仿真有参考文献最近…...

嵌入式USB MIDI主机栈的空指针防护与实时性增强

1. USBHOST 库概述:面向嵌入式实时系统的 MIDI 主机协议栈增强实现USBHOST 是一个专为 ARM Cortex-M 系统(特别是基于 mbed OS 的 STM32/NXP 平台)设计的轻量级 USB 主机协议栈扩展模块,其核心目标是可靠、低延迟地支持 USB MIDI …...

手把手教你用Proteus给Arduino项目做“硬件体检”:以舵机控制为例

用Proteus为Arduino舵机项目做虚拟压力测试的5个实战技巧 当你花了两天时间焊接好电路板,满怀期待地给舵机通电时,突然闻到一股焦糊味——这种硬件翻车现场每个创客都经历过。仿真工具的价值就在于,它能让你在烧毁第一个元器件之前&#xff0…...

AI 为什么不认识 Excel 文件?——用 SpreadJS 与 GCExcel 打通 AI 与数据的鸿沟

在技术领域,我们常常被那些闪耀的、可见的成果所吸引。今天,这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力,让我们得以一窥未来的轮廓。然而,作为在企业一线构建、部署和维护复杂系统的实践者,我们深知…...

Go的strings.Builder:高性能字符串拼接的秘密

Go的strings.Builder:高性能字符串拼接的秘密 在编程中,字符串拼接是常见的操作,但不同的实现方式性能差异巨大。Go语言中的strings.Builder提供了一种高效、灵活的字符串拼接方案,尤其适合处理大量字符串拼接的场景。本文将深入…...

用Python可视化回溯算法:一步步动画演示八皇后问题的92种解法

用Python动画拆解八皇后问题:可视化回溯算法的92种解法 国际象棋盘上的八个皇后如何互不攻击?这个1848年提出的经典问题,曾让数学家高斯误算为76种解法。如今借助Python的可视化能力,我们可以将回溯算法的"试错-回退-重试&qu…...