在我之前的视频里面啊,我介绍了一款编程工具叫 tree, 在 这个视频里面,我演示了如何让 ai 帮我们去写一个多现成的范例,以及去写一个俄罗斯方块的小游戏。然后就有朋友问我了, 这个东西能不能利用它来写脚本呢?可以的,但是你要知道,我们用它来写脚本的话,其实本质上还是在用 python 去写啊, 因为 python 和 ai 的 兼容性比较好啊,我们可以让 ai 帮我们写很多 python 的 代码,通常来讲的话,这个错误率还是可以接受的啊,但是你需要掌握 python 的 一些语法基础和它的一个代码结构啊, 就是说你不能什么都不懂啊,完全指望 ai 帮你去写套复杂的脚本啊,那是不太现实的。所以,如果说你想要 希望利用 ai 来帮助你辅助写脚本的话,你至少得掌握 python 的 一些基础。而 python 的 学习门槛呢,实话实说啊,他肯定是要比按键精灵更高了。 所以说,如果你是一个零基础的小白啊,你想要写脚本,那么我建议你把按键精灵作为起点啊,还是去先看这个编程基础,先看这个, 然后你再去看这个,最后你再去尝试啊,让 ai 辅助里去写脚本,要不然的话,他写错了,你都不知道怎么改对不对?就算没错,你也不知道怎么去用啊。好,当你具备了一定的编码技术之后啊,你就需要具备一定的理论基础。 我们的主要脚本理论基础其实就是两个系统啊,一个是识别啊,一个是操作。 关于这两者的关系呢,你也可以去看一看我的这个视频啊。好了,我们再来说一下这个用 python 写脚本的好处啊,第一个我之前说过了,就是 ai 跟它的兼容性比较高。 第二个就是他不太会被针对性检测,他的安全系数啊,是要远远高于按键精灵的啊,而且他的封装性啊,代码的封装性也要远远好于按键精灵,所以他的整体上限也要远远高于按键精灵啊,但是他的部署和发布啊, 要比安吉基尼更复杂。那说了这么多废话,我们来看一下怎么去通过实力啊,来去写一个最基础的目标识别加点击啊。好了,接下来是使用拍摄啊,你需要先安装好我们的拍摄环境啊,自己去往上下一个。这里我的版本是三点一,四点二, 这是我的拍摄路径啊,我们需要在我们的这个开发环境里面把这个路径给指定一下啊,在我们的这个开发环境这里啊,拍摄就是起的, 你看啊,这个路径啊,你要去指示一下。好,这里还是先打开我们的之前的项目文件夹, hello, world, 然后我们来设置一下这里,把我们的编码的界面啊,把这个字体把它改一改,改的稍微大一点, 方便你们去看啊,要不然的话太小了看不清楚。好,我在这里向 ai 提下需求啊,在这个多线层代码内,帮我实现如下功能, 在一条线层中检测一张目标图片,在一条线层中判断是否检测到图片,如果检测到,那么则让鼠标移动过去,并且进行点击操作, 同时按一下键盘的 h。 后面是这个目标图片路径啊,就这个,就这个桌面,这个美女的嘴巴。 好,这里我们把这个名字改一下啊,排序他对中文的支持还是不太好啊,我用按键用习惯了写中文,我们把它改为这个英文啊, target。 好, 这里我们来启动一下啊, 然后这里有提示啊,它的快捷键比较简单粗暴啊,是 e 和 h, 那 我们就先按 e 再按 h 吧, 大家看见没有啊?我们的鼠标确实可以过去,看见没有,对吧?这个说明没问题啊,我们的键盘输出的话,这里看不出来啊,应该也是没问题的。 好,我刚才按 q 把这个停掉了啊,刚才鼠标不是我自己动的啊,千万不要以为是我自己动了啊,是这个程序动过去的,我们可以看下这个输出啊, 检测到目标图片这个位置,你看九四五啊,五三三。我们这里粗略量一下,九四五啊,五三三是不是,你看差不多啊,九四五三三的话 啊,你看九四五三三啊,他量这个图片的位置,你看他不是以这个左上角为基准啊,他是以这个中间点为基准啊,所以我们看他鼠标过去的点也是这个中间点啊。 好,那我们再来一起浏览一下这个源代码啊,我们看一下它这个原理是怎么实现的啊?我们看到这个 cvr 就 应该知道啊,它用的检测原理是用了 open cv 啊,然后这个是我们的图片路径啊。 好,这一块是他这个我们的工作线层,这个一代表一秒钟啊,他和我们的按键的这个计时不太一样啊,按键的话这个单位是毫秒,他这个是一秒钟,那我们这里可以把它改快一点啊,比如说零点零一秒啊, 好,这里是我们的图片检测这个线层 啊,这里是输出我们的这个图片位置的,你看这个算法,它就是按照我们的这个中间点去算的这个位置啊,啊,除以二,对吧?宽高除以二 center 嘛,你看啊,中心点啊,然后这个 w 就是 y s 宽啊, h 的 hit 啊,高, 后面这里就是我们的控制线层啊, 然后这个鼠标操作用的是这个啊,用的是这个第三方库 p y l to g o i 啊,然后用它去移动我们的鼠标,这个间隔是指的是我们鼠标从我们的这个当前位置啊移过去,它所需要花的这个时间,这个零点五就是零点五秒的啊,就这个意思。 但是这里显然这个 ai 啊,还是把我的一个意图给理解错了啊,就是我这个 h 啊,我的意思是让这个鼠标移过去之后啊,按一下我们的键盘 h, 对 吧?在这里去按一下我们的键盘 h, 我 这个意思啊,但是他理解我了。什么?他理解我了,我们这个 去用 h 去启动我们的县城,是吧?你看他这就是理解错了啊。那好,我们再把这个间隔把它改短一点,比如改为零点零零一秒啊,他就可以做到。什么呢?瞬间移过去啊,他就没有这个轨迹了。好,我们可以看一看啊,启动 我们按一下,一再按 h 啊,好,看见没有,对吧?我们鼠标闪过去了,看见没有啊,对吧?直接瞬移过去啊,它就没有这个过程了啊, 然后 h 它按下去了,你看见没有?我们的这个这个文件夹,你看 h, 你 看它会亮,对吧?它会闪一下,说明我们这个键盘 h 啊也被按下去了啊。 好,现在是我们去借助这个 ai 啊,去帮我们写脚本的一个基础的方法,如果你有兴趣的话可以去尝试一下啊。
粉丝2.6万获赞7.8万

好,我们现在看这个 tree 啊,我们上一个代码已经可以让它去识别我们的目标了啊,好,这里名字改一下,这个是输出的名字啊, 然后我让他帮我优化代码。这里啊,看我们的新需求,帮我优化代码,把我的快捷键改成组合键,并且合并功能,把一和 s 的 功能合并为二加二。 因为我们之前的启动很麻烦啊,我们要先按一,再按 h, 那 这里我们简单一点,直接一个组合键二加一搞定啊。 好,这里帮我改好了,并且程序已经启动了,我来按一下二加一试试看,那没有问题啊, h, 再按,并且我的这个鼠标也过去了。 好,现成停止也没有问题啊,那这个时候我们就可以点这个保留啊。好,我们之前在讲 python 的 时候 讲过这个如何利用一个透明窗体进行一个目标识别的标记啊,然后在我们的笔记里面有这个源码,可以下载这个, 我们把这个源码把它下载下来啊,叫 alpha window, 就是 透明窗体,我们把这个源码贴到我们的 tree 的 项目文件里面去, 我们可以看到这个项目文件夹,这里就多了一个 alpha window 啊,点 python, 隔三差五的就有小伙伴要我帮他去看源代码。 看源码这个活不是给人干的啊,是给 ai 干的啊,以后你们别让我看源代码,直接会给 ai 看,他会帮你看。好了, 那这里我们就可以利用 ai 来让他帮我去阅读这个源代码,并且把它利用起来。好,这里我来给他一个新的需求啊,我想在现成控制的代码中,利用 alpha window 生成一个一九二零乘以一零八零的透明窗体, 并且在该透明窗体中把检测的目标图像用红色的方框标记出来。那这里我害怕 ai 不 能够完全理解我的意思啊,我点一下这个优化输入内容啊, 好,我优化之后啊,我们可以看一下它的这个新的这个语言就非常的准确了,应该是没有问题的。好,那我们来启动。 好,他这里已经把这个代码给我们改完了,我们可以看一看有没有问题 哦,他这个把他把我的 tab 给它覆盖了啊,呵, 好,我们来启动啊, 哎,没有问题啊,没有问题,这个图框把它绘出来了啊,我们这里把这个键盘的按键和鼠标的这个点击把它给去掉啊,先把它去掉这个鼠标和键盘操作啊,因为 没有必要啊,因为我们已经确定他没有问题了,对吧?这是在我们找到目标之后啊,可以对他进行了一个操作逻辑的设计啊,如果你要对他进行操作的话,可以在这里写逻辑啊,那这里我们不需要对他进行一个确切的操作啊,所以我们可以先注册了啊。 好,我们来继续优化啊,我希望在会制的方框的上方啊,用文字显示我检测的目标的名称,帮我加上这个功能啊。 falling in love with her is that like you freak no, no, i think it's i think anybody falls in love is a freak it's a crazy thing to do。 好, 我们再来试试看啊,哎,看见没有,现在有名字叫对吧啊?目标,好,我们继续啊, 再帮我把显示的名称后面加上目标的坐标信息啊,我们要一点点往上它啊。 好,我们来测试啊。哎,目标啊,后面还有坐标信息,看见没有?非常完美啊。

所以使用 y u s p r o max skill 的 详细操作版复制安装汉深层 skill 指令, 也就是这个粘贴指令。复制深层 skill 提示词,在这边打开复制这段指令复制。 来到这边创建智能体名称,写上 粘贴,刚才复制的指令就出来了,这会就可以创建了。再来到这个官网,复制我们要的提示时, 这段就是我们刚复制的提示词。粘贴到这, ai 思考中。稍等几分钟, ai 正在努力开发网页中,它根据 skill 知道我们的需求分解成十个任务, 还会通过拍三读取预设的风格,比如颜色、字体、布局等,这些都封装在 siri 文件中,支持各种框架, react, v, o, s, t, m, l 等各种模块, touch, colors, styles 等。 刚才那段是发给出意的中文提示词,我们看看到时候是否符合提示词的要求。 生成好了,我们打开看看。极简 ai 聊天机器人平台着陆页,对话式 ui 预览流势屏幕的立即使用行动号召按钮, au 功能特色卡片集成标识文本动画演示采用中性色调,搭配 ai 紫罗兰点缀。详细操作文档我发评论区自取。

ai 学 python, 跟着 tree 学代码,学完即有开发经验。第二章修改需求和代码第二章 我们上一次讲到在 ai 这里面复制这一段话啊,这一段话啊,然后在这里面放到这个框里,有点发送, 它就帮我们生成一个软件, 那这一张呢?我们就来启动这软件,并且呢修改需求,我们先启动点这个三角箭头启动它, 那它页面呢?就是这样子的,我们来测试一下,点浏览和选择运行,它就是这样子的。嗯, 那我们要学习怎么来去修改需求,就是他这个结果,我们要修改他现有的结果,你看他是带后缀的,那我们可以改成不要后缀。呃,那怎么改呢? 我们可以这样啊,帮我修改需求输出结果,只要名称,不要其他。啊,这样啊,复制,然后到这个框里面去, 我们可以再明确一点,那你不要其他,不要什么呢啊?我们可以不要后缀啊,再明确一点点,发送 要我们把这个羽毛的这个软件就是我们打开的,我们把它关闭先, 你要关闭它,然后运行的时候它才可以运行, 那它修改需求的时候呢?它这里可能这边可能出现一些。呃,需要我们去确认点击的地方。呃,我们就需要 去点击一下,像添加白名单啊,或者是它运行什么东西,需要我们点确认,我们就要需要注意观察右边这里。嗯, 好了,它现在已经修改完成了,我们就运行一下, 再测试一下 运行,嗯,这一回他就没有后缀了,他就达到了我们的要求了。 ok, 下一步我们学习如何修改代码啊? 直接修改代码,这里,这里的代码我们要去修改,首先我们学习修改这里面的名称,软件的名称啊,比如说我要修改选择文件夹,那怎么修改呢? 我们看这里啊。呃,可以复制我这段话啊,我需要修改选择文件加这个名称,帮我指出在哪里修改复制, 然后在这里框里面粘贴按回车或点提交。呃,这个羽毛我们就要把它关 闭。 刚才讲到的地方呢?刚才讲到的地方,呃,就是右边这里呢,这个地方有可能会出现的情况啊,我列出来,第一运行我们就点它,我们不要怕, 然后呢可能人要运行。还有一种情况就是添加什么到白名单,我们就点添加白名单就可以。好了,这里它已经完毕了啊, 我们这样跟他沟通呢,呃,叫他指出来在哪里修改的,他就会说在哪个文件啊,注意看一下这个文件,我们在这里找到在这个地方啊,找到这个文件点击, 然后呢他是第十六行,注意看第十六行,我们找到第十六行 这里,嗯,这里它是一个双引号,把这名称给引起来了啊,那双引号不能动,我们就改其他的,再加个字母上去啊,要 ctrl s 保存,然后我们点 运行看一下。嗯,你看这里就已经改了 r 了啊,这说明我们我们直接改代码就成功了, 那我们接下来呢啊就要讲解啊,一个新的知识点啊,变量, 我们看代码啊,变量就是在这里面的啊,它是由英文组成的,它的命名规则呢啊是由英文数字和下滑线,下滑线啊三种 符号组成,另外呢它必须以英文或下划线开头啊,数字呢只能放在第二位啊,及后面 都可以啊,你在这里加,后面加个二三都行,但开头就必须是英文或下划线, 所以它的命名规则就是规范的啊,它是以英文开头啊,是 test 啊,然后等于等于它就是复制符号啊。左边啊,左边是 变量,中间是个等于号赋值,那他是将文本这个值呢赋给这个变量,那这里面呢,他就是想将选择文件啊,文件, 将这个纸包括后面的这个引,这个冒号啊,引号不算啊,引号它是将这个纸引起来啊,要复制给左边,它必须要用引号。单引号也可以, 就非数字的,非纯纯数字的就必须要引号引起来,要复制给左边这个变量啊。 好啦,这一章我们就讲到这里,主要就练习怎么修改软件啊,下一章我们继续,谢谢。

做 js 逆向时遇到了无限 bug 怎么办?这个视频呢?我们来讲一下啊无限 bug 的 解决思路。那么什么是无限 bug 呢?它又被称为无限调试器以及死循环调试,是一种非常常见的前端反爬技术。 简单来说,它的核心就是强制能让其去进入调试模式并且卡住,从而去阻止开发者查看源代码,或说去进行爬虫分析。那你说这个爬虫呢?看不到源代码怎么去啊?得到数据呢?是吧?那么它到底是怎么去工作的? 他是去利用了浏览器开发者工具的一个特性,当代码执行到了第八个语句的时候,如果说他发现你这个开发者工具是打开的,他就会暂停执行。如果你也对拍粉爬虫感兴趣,土包将毕生所学都拆分成了这些,从零到进阶全流程,按照八十老奶都能学会的方式讲解, 在那个地方去断住。接下来我们来看一下 debug 的 常见形式。先来看这个单断点的形式,把这个代码复制放到拍摄当中来,那么这里呢,可以去给它输出一个 hello world 吧, console log hello world。 好,这个页面呢,咱们先给它注视一下,来右键去运行这样的一个代码,它并不会有任何的断点断住,这是因为我们并没有去进入到调试模式当中,需要去右键选择 debug 去调试这样的一个文件,那么点击之后,哎,断住了对吧? 断住了。咱们这个地方是一个单断点,你可以通过啊直行下一步去跳过这个断点,它就输出了这样的一个 hello world, 那么这个就相当于是一个比较简单的断点了,你只需要去给他啊,执行下一步,他就可以去跳过当前的这个断点仪表,它也是相同的。解开注之后,我们这这里再把这个 cursor 给它拿过来啊,再来去右键重新去调试一下。 首先第一个地方它也会去断住,我们去给它执行,对吧?输出了一个 hello world, 它是在这里去输出的,然后再去进入到了 evo 它的一个断点当中,它这里是开了一个相对虚拟机的形式啊,去走了这个 bug, 那 么这里呢,同样也可以去给它执行下一步啊,那去跳过这段点去输出这个 hello world, 所以 这两种形式呢,它都比较简单,都只需要去执行下一步就可以去跳过当前断点了。 看完了单断点形式之后,我们再来看一下真正意义上的无限 debug, 它是一种什么形式?先来看第一种吧,第一种呢,是一个 will 死循环的断点,我们把这个代码给它复制过来, 放到这里面来,这个先给它关一下吧,然后上面呢先给它注视一下,好来看下这个代码啊。那么这个代码的话呢,它是一个自执行的函数,它会自动去执行这里面的逻辑, 在这里面呢,又定义了一个 block 函数,里面呢,放了一个 delete, 是 吧?我们这里也可以去给大家个输出啊, coslog 这里呢,比如说来一个幺幺幺,好在下面呢,又是去做了一个 view to 啊,死循环,它这里这个条件呢,会一直为真,一直为真,就会一直进入到这个循环当中,去调用了这个 block 函数, 那么这个 bug 出来又去做了一个断点,相当于它就会一直断一直断,我们可以去右键调试看一下,在这个地方呢,它就会去断住了,输出了一个一一,对吧?咱们再来去点击一次,它又输出了一个一一,这是第二次了啊, 再来去执行一次,第三次一一一,它这里就会去不断地去触发这个断点,不断地去输出这样的一一。那么这种呢,就是一个通过 vivo 循环来去实现的无限。第八个, 其实在前端当中,用 windows 循环来去做无线 bug 的 形式还是比较少的,更常见的呢是定时器的形式。我们来看一下定时器断点, 把这个先给它注视掉,然后把这里的代码粘贴过来啊, set interval, 然后里面呢放了一个函数 f, 它里面的逻辑呢是先来一个 bugger, 然后去输出 hello world, 每隔五十毫秒就去触发一次断点,那么来右键去调试一下, 好在这个地方它也断住了,对吧?我们来去执行下一步,它并不会退出这个断点,而是会继续在这个地方断住,因为它在这里一旦定时器开启之后,它就无法去停止了,所以你需要在它定时器开启之前就去给它处理掉。 那他这里呢,一般来说是常见为一千毫秒就是一秒钟,那你说能不能在这一秒钟去给他处理呢?其实也不太现实啊,咱们还是按照正规的一个处理方式去给他处理吧。那你说他如果说有一天这里改成一秒钟一毫秒,是吧?那整个这个过程是非常快的,你不可能能处理过来啊。 好,这个是定时器的形式,当然还有种定时器叫做 set time out, 我 们来看一下 set time out, 这里呢,我们也可以把这个逻辑给它拿过来, 然后给它注视一下,这呢右键去做调试,它也会断在这个地方, 但是这个地方呢,你可以去啊,执行下一步,它会退出这样的一个断点,因为 settimeout 呢,就只会去执行一次,那 settimeout 它能不能去实现这样的一个无限 debug 呢?它也可以怎么去做?我们来看啊,给它改一下就可以了。把这个逻辑再拿过来 看一下,首先 settimeout 里面放了一个函数, debug 断点啊, console log 去打印输出,然后在这里呢又去开了一个 settimeout, 它里面呢是走了一个什么调用的 f 函数嘛?然后去每隔五十毫秒去调用,是吧?那相当于是它陷入到了地规当中啊,陷入到了地规当中,就会就会去不断的重复的去调用这个函数,去实现这样的一个 bug 的 一个断点。来,右键去调试一下,好,第一次进来 啊执行,它依旧会在这里不断地去断住,断住,断住。所以这个定时器 set them out, 它也能去实现啊,这个无线 debug, 但这种方式呢会比较少啊,更常见的呢,还是这个 set interval 这样的一种形式。我们再来看一下一些其他的形式啊,比如说这个地方呢,还有通过圆形链的方式来去执行 debug 的, 给他拿过来给他演示一下。好,这个呢,给它先注视掉吧,然后我们这里呢粘贴过来, 这呢有一个大写的 f 开头的方形,他是去对他的圆形来做处理了,里面呢是放了一个 delete, 去通过点块的形式来去调用,这呢是通过点 app i y 去调用,下面呢是通过构造器来去调用。 这下面也差不多啊,也差不多。构造器构造器,只不过它是形式不一样而已,真的是通过 e v a l, e v l 去给它执行字母串的一个命令,这里呢是一个自知行嘛啊,这个呢,是把自知行的一个函数给它放成了哎,这个字母串通过 e v l 去给它执行一下, 同样的,咱们这里去给它 t 八格一下呢,首先这里它就会进入到这个虚拟机的形式里面呢,是一个哎,自知行函数是吧? t 八格 啊,咱们可以去给他跳过一下啊。这是第一个地方,他并没去打印出来。这个一直行好,输出了一对吧,又进入到了第二次,第八个,好,再直行二,又进到了第三次,第三次呢,是这个这个构造器的了, 好,三四五六,他都会去开启虚拟机的形式,然后去给他断住,但他都是单次断点啊,都是单次断点,但是这种单次断点他一旦结合上什么呢?结合上这样的一种电视机,或者结合上这样的一些什么啊? v 循环,他就可以去实现啊,一个无线 d 八二的效果了。 看了这么多的迭八格式之后,我们再来去讲一下它的解决思路来看,首先第一种啊,是永不在此处暂停,或者去添加条件断点 force 来看这样的一个网站复制,然后我们这里呢去打开谷歌浏览器粘贴过来,好, 它就是这样的一个网站,我们去打开开发者工具 f 十二,好,他说被禁用了,是吧?那么右键呢?右键也被禁用了,那就选择通过 ctrl shift 加 i 或者这样的形式给它打开开发者工具,那么一打开之后发现,哎,在这里去断住了,断住了的话,那么这里能不能去执行一下呢? 这个地方执行一下,你发现它是跳不过去的,跳不过去会在这里一直开虚拟机,然后去断在这个位置,是吧? 那么能不能干嘛呢?能不能去右键啊?在他的行号这里去右键选择一律,此一律不在此处暂停。好,然后呢去执行一下, 哎,发现他就没有在断住了,对吧?没有,在断住了之后,这个地方呢会说检测到非法调试,请关闭调试终端后刷新本页面重试。那他应该是检测到了我们这个开发者工具了 啊,有可能他是去检测了什么呢?检测这样的一个窗口宽度,那我们可以去把这个开发工具给它切出来,切出来之后来刷新一下呢。 哎,刷新一下它就正常出这样的一些数据了嘛?我们来看这里的一个网络面板,它就会有这样的一些数据包啊,就有了这样的一些数据包了。那么这个是第一种方式,永不在此处暂停,或者咱们这里先去给他改一下啊,我这里先去给他切回来之后, 哎,切回来之后,然后刚刚的那个方我先给它关掉吧,关掉之后来刷新一下, 再去打开开发者工具。好在这个地方呢,给它添加条件断点,给它改成什么呢?改成 false, false 就是 假的意思,它这里其实和那个永不在此处上面是差不多的,当它走到这里之后呢,一直都是 false, 就是 为假的时候,就不会再去进入到这个断点当中了,来回测一下。 同样呢,这里也是啊,执行他也可以去跳过这个断点,但这里咱们再去给它切出来之后,然后去刷新这个页面,好来看看数据包有没有呢?哎,就有了吧啊,所以这个就是第一种方式啊,也是最简单的方式, 添加条件断点,或者说永不在此处暂停。我们再来看一下第二种方法,在事件函数调用之前去给他 hold 掉。来看这个网站, 同样呢,也是进入到这个页面当中,然后去通过 f 十二打开开发者工具,哎,断住了对吧?断住了之后来去试一下。第一种方式啊,一律不在此处暂停。来给他咨询一下, 发现好像在这里卡了一下,又断住了,那就说明他并不能通过这样的一个形式来去处理吗?跳不过去啊,卡死了,这里已经 重新刷新一下呢,刷新不动啊,还是给他重新开一下吧。重新开一个好, i'm sorry。 打开,那么现在我们就可以去通过看他的一个调用对战来去看这个函数是在什么地方调用的了, 上一个在这个位置,那么这个位置的话呢,来看一下啊,他在这上面的话呢,做了混淆,这是什么东西呢?选中一下 啊,这个是一个构造器嘛?构造器,然后这个地方呢,是一个第八个,然后后面的话呢,应该是点块了吧?点块,那也就是说他是通过什么呢?通过我们这个地方的一个形式来去做的嘛,对吧?构造器,第八个,然后点块这样的种形式, 那么这个构造器的话,我们来再往上面找一个站,好在这里面有个什么 set interval 这样的一个定时器,这个地方的话它是隔了多久?我们来看一下这是什么零,然后这里呢? 这里呢?这个是二五九一是吧?反正它这个是什么?就是一个定时器嘛,那 就说我们要在它定时器开始之前就去给它处理掉,那这里给它下个断点呗,下个断点,然后重去刷新一下这样的一个页面,哎,在这个地方就给它断住了把,它还并没有去走这里面的这个逻辑,那么就可以干嘛呢?就可以去把这个定时器给它啊,相当于是给它 hold 掉,给它制空一下, 来这里控制台 set 听到没有?就等于翻过去给它重新去处理一下, 给他治空嘛?他本来是要去走这样的一个逻辑的,对不对?但是现在啊,我给他治空了,治空之后他就不会去走任何的逻辑来回车,现在再来去执行一下呢?好,他就没有再去有任何的断点了,但是有点小问题,连接服务器,超时点击屏幕重试。 哦,好,你点击之后它又断住了,对吧?又断住了,我们这里再来去看一下它能不能啊?能不能去重新给它 hold 一下。 set interview, 然后等于方形 f u 好 回车再来去执行啊,还是会有这样的一个问题啊,就是说它这里呃,服务器断开连接的形式,那我们来看吧,这里的话重新刷新 好,断在了这个位置,往上面堆站找一下啊,它应该是还是会有个有些地方有问题, 堆站找找,找到最顶部的这个立名在这里来看一下,它是这个自知其形,我们来往上面找一下,是哪个函数啊?是哪个函数?找找找, 是这个吧,是吧?是这个,是这个的话,哎,是哪个啊?看一下啊,是不是这个? 是这个吧,来在这里给它下多点看一下呢,重新去刷新页面,然后咱们在这里去给它制空一下,回车好执行,这里先给它去掉吧,执行一下。哎,是不是数据又出来了, 把这个页面就给它加载成功了吗?他也并没有任何断点了,那咱们这里的这个税包也是正常去发送的,所以这个呢,就是第二种方式啊,在他定时器开启之前就去给他 hold 掉,给他置空。 我们再来看下第三种方法,文件替换覆盖的方法。那么这种方法呢,不是那么的建议,因为你替换之后他可能会出一些问题,那我们也来看一下吧,这个网站也是 进入到里面去,然后通过 f 十二打开开发的工具啊,也是断住了,断在了这个地方,它是一个 set interval, 我 们也可以给它下个断点,可以去试一下第二种方式,看它能不能制空掉。 刷新一下页面,然后去制空这样的一个定时器, 回车好,然后去执行一下,跳过了那个 set, 英文 intelayer, 断点呢,然后又进入到了这样的一个单断点呢?就一个单的 debug, 我 们可以去给它执行一下啊,就没了是吧?没了好,这个是置空的形式嘛?那假设我们这里补给它置空呢,就去用那个, 呃,替换的话呢?拿 f 二打开一下替换的话怎么去替换呢?在这个地方我们先在桌面吧去给它创建一个文件夹 app 吧。好,这个命名可以去自己命名啊,然后我们在这个地方呢去看它是 app, 二八三九点 gs 右键去选择替换内容,他让你去选择文件夹,我们就选择这个桌面的 app 文件夹, 然后需要去允许啊,允许这个修改文件允许,那么把这个定时器你都可以给它删掉啊,这个都可以给它删掉,或者说你把这个 debug 这一段给它删掉,也可以删掉之后呢,我们这里可以给它 ctrl 加 s 保存一下,好来刷新一下, 它就不会在这个定时器里面断住了,而是断在了这个地方啊,这个地方,那这个地方也可以给它替换呢,是吧?这里也是右键去替换内容,然后把这个 debug 也给它去掉,然后 ctrl 加 s 给它保存上,刷新, 这把就没有再有任何的断点了,就直接出了这样的一些数据,也出了对应的数据包了啊,这个数据包都是有的了,那么这个是替换内容的方式啊,它这里会起用本地替换,你给它勾选上,你如果不勾选它就不会起用本地替换的,你要去给它去掉,就给它点击这个,就可以给它去掉了。好吧,来再刷新, 他又有了吗?他就又回到了他自己的那个文件里面去了。好,那么这个就是我们今天所讲的全部的啊,对于这个无限极 bug 的 一个处理方法,包括啊,他的一些原理啊,怎么去处理啊?他的一些形式有哪些啊?是吧? 如果你也对拍粉爬虫感兴趣,土猫将毕生所学都拆分成了这些,从零到进阶全流程,按照八十老奶都能学会的方式讲解。


大家都知道 and 三 d, 它可以用 python 代码来构建元典库,是 python 代码构建元典库的时候,它有一个问题 是你写好的编程代码,它在构建的时候,你每一次更改都需要重启一下 plan 三 d, 然后再进行新的测试。每一次更改都需要重启一下这个 plan 三 d 呢?它又挂了很多,例如正交管道 这些,还有 pid, 它挂了很多这样的类似的插件,它每一次重启都比较耗时间,你每次重启,每一次重启,你代码更改的次数多的话,你的重启的次数就多,这样耗时非常难受。 尤其是新手,他对拍神代码不熟悉的话,这种出现错误的可能性更多。然后刚好上一次我这个代码是用拍神生成的, 那是用 ai 生成的一个拍神代码链接库代码。他当前的代码有一些问题,这是他当前生成的一个,嗯,法兰吧,但是他当前法兰生成的有问题, 问题就是刚好借这个例子给大家讲一下这个不重启的这个插件的用法。 然后这就是当前的这个代码生成的一些,嗯,生成的这个稍微模型 可以看到它外围外边框是是有的,然后中间可能有一些问题。那这个时候我们先进行一下测试, 然后先看这边,它生成代码,你可以 print 一 些输出,一般情况下你也就是代码的这个地方 print, 你, print 可以 作为日制使用,就是你每隔啊有一个比较大的或者是封装好的一个函数,可以 print 一下, print 一下,然后它有问题的时候,呃,就是例如你在这个地方 print, 然后例如你放到这个地方 print, 然后你发现这一行 print 它没有输出,有可能中间的代码会有一些,它可能就有问题, 这个 print 可以 作为一个调试日期来使用,那当前呢?嗯,从当前这个测试发现它它提示了一下有个变量名没有定义, 我们这边先看一下这个没有定义的变量名,你看这个,这个的话可以从那个 max 库里面 它这边已经给提示了,我们按一下 table 就 行。然后我们这个时候再测试一下,看还有没有这个下面的这个错误, 清除一下,然后点一下这个点一下测试,然后它那个中间的那个之前的 box box 是 我 拆开起,就是你代码有问题的时候,它有拆开起的话它不会崩溃,就是它检测到你代码里面有问题,它就会给你生生成一个 box, 在 里面提示你你的代码当前有问题,你可以排查你的代码。 那现在呢?它没有之前的那个那个 box 了,但是还有一点问题,查一件它这个地方是应该没有的,应该切除掉。我们再检查一下代码, 现在代码都是英文注示。我们给给大家说一下, 如果你这边不使使用还是之前之前的办法,就是不使用这个不重启的一个方法的话,它你这时候你每一次更改代码,就比如现在你更改代码 更改了这个刚才的那个 pad, 加了一个 max 点 pad, 它你就要重启一次,现在已经不需要重启了。这边我们等它把这个英文注英文注式给我们改成中文,然后我们这边看一下, 这边已经改好了,改好了,我们这边先测试一下它更改之后的代码有没有问题,还跟设置一下它的代码有没有问题,还跟之前一样, 还跟之前一样。这时候我们就排查一下,排查一下它这一段是怎么产生的。我们先看一下代码 它这边,哦,它这边想创建一个紧固,然后连接圆柱体,我们这时候把这这行代码给注销掉,我们再看一下, 然后注销之后保存一下,再使用我们的那个不重启的一个办法, 它这边又提示又又有一个 box 出现了,也就是说它这边提示以 nike, nike 没有定义,我们再去代码里面检查一下,就可能刚才注视的代码可能有一点问题。 来看一下它这个 nike 是 上面这个 cylinder 创建的,我们把之前的代码注射掉,它下面的也注射掉,我们这时候把下面的也注射掉, 好,保持一下,好再数一下。不重启啊,这个时候它这个整个法兰都构建成功了啊,这个不重启呢?你还可以分析一下代码的这个构建步骤, 例如我们把后面的这个创建这个螺栓孔的给注死掉, 然后我们保持一下 啊,我们点一下这个,然后再进行一下测试,螺钉孔就没有了,你可以逐步的排查你的代码, 然后我们来给它取消故事, 当你排查的没有什么问题了,然后这个就是当前的你的整个模型就可以,呃,作为 这样的注册在这个 plan 三 d 里面,然后注册到 plan 三 d 里面,你就可以在那个文件库里面看到这个模型了, 然后这个就比较方便,尤其是一些现在可能用 ai 工具比较多,它这个 ai 工具可能生成的代码有些问题,你可能需要嗯实施调试,或者是排查一下,例如这个就是整个就是 ai 生成的代码, 它就有多了这个颈部,颈部是构建的是有问题的,所以你就需要排查一下,把这个颈部给注视掉, 或者是你这边,比如我们这边还有一种排查方法,就是加 print print 的 办法, 如果你没有不重启插件的话,你就可能用这个 print 的 办法,可以也可以方便你排查,就是你在你进行一些,例如嗯, hash 这个代码前后最好加一些这个 就是例如这边加一些这个 print print 输出,然后到时候它如果这个 print 来的有问题的话, 就是你可以判断出来,如果它到这个地方它这个 print 出来了,下面的这个没有 print 出来,那就是你中间的这个代码有问题, 那我们这边看一下它这个 print 类 加的这个新加的这个 print, 它就会出来了。你没有不重启的代码的,不重启的这个方法的话,你就直接在你的代码里面最好加 print 加一些 print, 这样它代码会有一些输出日期。你或者嗯有一种比较那个 ai 的 办法,就是你把你你的整个代码让 ai 给你加 print, 加完之后,然后它 print 之后嘛 编辑之后他这边会有一些输出,然后你直接复制这些输出,然后回过头来再把这个呃输出给 copy 过来,然后再给,然后他会看到这个日之信息,然后他会然后分析一下,然后再更改你的代码,然后再进行一些测试, 但是这种办法的话,他对于对于一些比较弱的模型的话,他可能越改越差。

挑战用爬虫爬一百个网站,第二十二期某某招聘官网反调式解决, 我们来看到这个页面啊,那么如果说呢,我们想要去采集上面的这个数据信息的话,我们首先呢要使用 f 十二快键,对吧?打开开各种工具的面板, 结果你会发现呢? f 十二快捷键都快按烂了,都打不开,所以说呢,我们换一种方式。好,在这里的话,我们直接点开一下这个开发者工具面板,那么你会发现呢?哎,开发者工具面板是没问题了,但是这个页面啊,他直接跳没了,对吧?好,那这个问题的话该怎么去解决呢?该怎么解决呢? 就是很好解决,之前有给大家去讲这个什么后个技术对不对?还有说这个什么插装啊,插插装的话现在插不了装,嗯,或者说呢,我们在这里啊,都在去 来,在这里的话直接先 f 十二块一键打开开发者工具的这样的一个面板, ok, 然后我们去设置一下这个什么脚本的断点,对吧?脚本断点在哪里?在这个时间间断点里面。好,然后点击一下这个脚本, ok, 咱输一下这个 boss 的 一个网站来,我们打开 好在这里的话呢,你会发现他直接断住了。好,这里的话要去分析一下这个代码,但是我这里有一个更好一点的这个方式是什么呢?就是说我们直接搜索一下这个 来,我们先不打开这个开发者工具搜索他,我们换一个这个浏览器吗?对不对?像这种问题的话不需要我们自己去解决,换一个浏览器就可以了。然后你在这这当前的这个页面当中,你会发现呢?我直接打开了这个开发者工具面板,然后我们去搜索一下这个某 boss, 好, 搜索一下。哎, 您猜怎么着就可以正常的去抓包了吗?是不是还是非常的简单的就直接用换一个这个浏览器啊?哥们,或者说呢,你可以去使用这个抓包工具,对吧?这个非常好,解决像这种反调试的问题。

今天教大家用国产桌面使用 u i x pro max skill, 让桌面写 ui 界面更高端。用上这个神器, i 编程插件、 ui、 u x p r o max skill 自动适配格式、 create code 等开发软件。打开桌面,再打开这个文件新建终端。我们先来 get up 复制指定到桌面 创建智能体, 把 skill 提示词复制粘贴到智能体中,生成高端的网页提示词。稍等几分钟, ai 正在努力开发网页中,它根据 skill 知道我们的需求,分解成十个任务,还会通过拍山读取预设的风格,比如颜色、字体、布局等, 这些都封装在设备的文件中,支持各种框架, vr、 微 o, a, c, m、 l 等各种模块,超 x、 color styles 等。这段是发给出的中文提示词,我们看看到时候是否符合提示词的要求。 对话框、行动按钮、 ai 功能、特色卡片等,还有骚气的紫罗兰色点缀,你说是不是都齐活了?想要使用方法的自取。

tree 作为国内首个原生 ai 开发环境,是一名能够理解需求、调用工具并独立完成各类开发任务的 ai 开发工程师,即主打通过自然语言交互实现代码生成、项目构建与调试, 重新定义编程效率标准,让编程从繁琐的代码编辑转变为创意表达。本视频将演示通过 tree 的 m c p 实现接口协议的自动解析开发,从而帮助自动化测试行业的用户更便捷、快速地完成设备对接控制。 在自动化测试行业中,想要对非 s c p i 指令的设备进行控制,则需要使用 python c 等工具对其接口协议进行解析以控制设备。 而在处理中,首先需要设置 m c p 并新增 m c p 服务,设置服务的 url 和 api p 并解用服务智能体选择 builder with m c p 并输入提示词, 然后加入通讯协议文档, ai 即可自动生成解析器代码以及指令说明文件,确认、保留并复制代码到自动化测试平台中。在平台的解析器维护功能中,新增解析器,将复制的代码粘贴到解析器界面中保存并发布,然后就可以对飞标设备的指令进行标准化封装, 最终通过添加串口设备的方式实现设备的自动化控制。