- 博客(239)
- 资源 (4)
- 问答 (2)
- 收藏
- 关注

原创 《用机器/深度学习过爬虫验证码》
本专栏旨在带大家学会如何用用机器学习或深度学习过掉各种各样的爬虫验证码,同时还会涉及到一些跟图像处理有关系的内容,比如验证码图片切割、图片回正等。
2023-04-27 18:31:38
491

原创 《Buildozer打包实战指南》
我们可以使用PyQt或PySide开发桌面软件,并通过PyInstaller或者Nuitka将软件打包成Windows、macOS或Linux上的可执行文件。而如果要打包移动端应用,那就要使用Kivy开发界面和功能,并通过Buildozer将代码打包成apk或者ios包。在本教程中,笔者会从头到尾一步步教大家如何成功地将自己写的代码打包成一个安卓apk文件。本教程目前只专注使用Buildozer打包出安卓apk文件,如果要打包成桌面端可执行文件的话,可以去看笔者的。
2023-01-16 11:27:19
1382

原创 《树莓派项目实战》
出于对树莓派的喜爱,笔者写了这一部专栏,希望也能够带大家了解并喜欢上树莓派。专栏内容专注于干货知识点,不会讲废话,直接带大家上手实战。一起加油(๑•̀ㅂ•́)و✧。
2022-11-30 10:14:40
1566

原创 《Nuitka打包实战指南》
Nuitka这一Python打包库逐渐开始进入开发者的视野。它将要打包的代码编译成C语言级别的文件,不仅提升了程序的运行效率,也加强了代码的安全性。Nuitka支持Python 2.6-2.7和Python 3.3 - 3.10,能够在Windows、MacOS和Linux系统上打包,上手也非常容易。笔者本人拥有多年打包经验,编写的这部专栏会带大家详细了解Nuitka,好让大家能够顺利打包自己的程序代码,避免踩坑。 文章简洁易懂,包含丰富的打包实战技巧,相信读者朋友会喜欢。有任何问题可以私信
2022-01-29 10:11:28
10045
8

原创 《Cocos Creator游戏实战》
《Cocos Creator游戏实战》一起学习如何用Cocos Creator来制作游戏~摘星星进阶版虚拟摇杆实现贪吃蛇平滑移动新手引导实现滚动数字跑酷背景移动实现实现下拉框按钮ComboBox控件手势缩放功能实现旋转循环页视图实现实现环形进度条打砖块主要功能与逻辑实现关卡功能实现待更新欢迎关注我的微信公众号,获取全部源码:...
2019-11-11 21:19:20
5037
3

原创 《PyInstaller打包实战指南》
《PyInstaller打包实战指南》好不容易解决了代码中的bug,又在PyInstaller打包问题上浪费了很多时间,最后可能还解决不了。其实,用PyInstaller来打包并不存在所谓的坑,只是大多数人对它不了解才导致了时间浪费。《PyInstaller打包实战指南》会带大家从头到尾了解如何顺手地来使用PyInstaller,从讲解PyInstaller的打包模式,打包命令以及打...
2019-07-20 16:55:07
13648
20

原创 《快速掌握PyQt5》
写在前面:因为太喜欢Python和Qt了,所以想开始慢慢写一些有关PyQt5的知识点。刚开始会介绍各个控件的使用,之后会进行实战操作,相信学完本系列对大家的兼职/外快事业会有帮助。所有的篇章不会有太多冗余,干货最重要。读者当然可以把这系列当作一个工具书来使用,希望能帮到大家。注:Windows对PyQt5支持最好,但笔者还是想看下MacOS对PyQt5的支持如何,所以会在Mac上运行...
2018-09-02 18:04:16
32241
13
原创 《Cocos Creator游戏实战》非固定摇杆实现原理
许多同学在开发摇杆功能时,会将摇杆固定在屏幕左下某一位置,不会让其随着大拇指触摸点改变,而且玩家只有按在了摇杆上才能移动人物(触摸监听事件在摇杆精灵上)。然而,不同玩家的大拇指长度不同,使用这种固定摇杆可能会导致部分玩家无法快速按到摇杆,从而影响了游戏操作性。非固定摇杆不需要玩家去寻找摇杆位置,玩家的大拇指只要在屏幕左下区域按下,摇杆就会自动被设置到大拇指按下的位置(触摸监听事件在画布上),游戏操作性因此提升。注:有关固定摇杆的具体实现原理可以前往查看笔者的。
2024-12-24 12:45:48
425
原创 《小小像素》游戏——用你的像素画去战斗吧!
玩家被召唤到一个像素世界中,并扮演一位像素勇士。为了击败大魔王,玩家需要收集各种制作图和不同颜色的像素块(颜料)来绘制出装备或治疗药水。只有绘制并配备了优良的装备以及足够的药水,玩家才有机会击败大魔王,拯救像素世界的子民。在这款游戏中,玩家既可以感受到打怪变强的刺激,又可以体验到像素绘画的乐趣。主角是一个拟人化的小像素块,会移动、眨眼、冲刺撞击(没有武器的时候)以及死亡。怪物目前画了五种,各个怪物的血量、移动速度、防御力和攻击力都不相同,出现时的颜色是随机的。
2024-12-18 10:55:16
914
原创 《Python爬虫逆向实战》内存漫游
所谓内存漫游,就是说我们可以在浏览器内存中随意检索任何想要的数据。在JS逆向过程中,最麻烦和最浪费时间的步骤就是跟值。本篇文章介绍内存漫游工具能够帮助我们快速定位某个加密值的生成位置,即可以直接搜索变量的值(value),而不用通过变量的名称(key)来定位,这样可以节省大量的逆向时间。
2024-10-13 13:38:10
1342
原创 《Cocos Creator游戏实战》九宫格抽奖实现原理
再利用随机函数拿到一个整数,并判断该整数在哪一个区间范围,这样我们就知道奖项是什么了。老虎机周围的灯光效果实现起来很容易,笔者这里用了一些图片,然后在脚本中通过计时器来不断更新图片。奖品项节点中的图片和和文本是动态添加的,开发者在代码中填写好就行。子节点的时候就应该按照顺时针的顺序,并且要排除掉。节点就是老虎机边上的灯光图片。节点下面一共有9个子节点。节点就是正当中的抽奖按钮。节点用作老虎机的背景。节点用来显示抽奖结果。节点就是一个空节点。
2024-10-09 16:08:50
502
原创 《Cocos Creator游戏实战》像素换装实现原理
事件函数编写如下,主要就是根据自定义传入的数据,加载对应的图片。如果是默认按钮,把图片清空就行了。,否则各个图片被剪切了的话那换装就会错位了。Player节点上的图片是这样的,保持不变。如果要变换武器的话就先将各个武器图片放在。然后添加按钮,并给每个按钮添加上事件。,且大小和图片大小一样。开发语言:TypeScript。Player及其各个子节点都是。编辑器版本:3.8.3。类型的节点,每个节点的。
2024-09-11 11:14:39
440
原创 《Python爬虫逆向实战》加密方法远程调用(RPC)
加密方法远程调用采用了协议,即远程过程调用协议。我们让浏览器充当客户端,并通过WebSocket将加密参数值发送给服务端(用Python写一个),这样的话我们就不需要花费大量时间去逆向了。下面我们就通过一个微博登录示例来演示下RPC的用法。
2024-09-06 10:27:53
1468
1
原创 《Cocos Creator游戏实战》背包英雄中的背包功能实现原理
因为武器节点weaponItem在Weapon Layout节点中,而网格节点grid Item是在Backpack节点下,所以为了判断两个矩形区域是否相交,必须在世界坐标下进行判断。当武器被拖入背包时,背包中的对应位置的网格需要显示成不一样的颜色。前者获取当前节点所在的矩形区域,后者可以计算两个矩形区域的相交区域。武器在放入背包时,其实是添加到这个节点上的。函数来实现的,如果新放置的武器和原武器有相交,则将原武器放回。节点就是最初展示各个武器的节点。节点是一个布局节点,上面挂有。
2024-08-22 22:13:49
1140
原创 Cocos Creator通用关卡编辑器UniLevelEditor
这是一款通用的关卡编辑器,可以帮助你快速制作不同类型游戏的关卡内容。不需要每个游戏都特别制作对应的关卡编辑器了。注:该商品为Cocos项目源码,不是插件,开发语言为TypeScript。目前仅支持在Cocos Creator 2.x中运行该项目,但导出的JSON文件可以在任意版本编辑器(2.x & 3.x)中使用。
2024-08-22 19:56:53
676
原创 《pygame游戏开发实战指南》第八节 Sprite类和Group类
Sprite(精灵)是游戏中一个非常重要的概念。在游戏开发中,Sprite指的是一个可以移动、旋转或变换的二维图像,它负责管理游戏中的图像元素,使得开发者可以轻松地在游戏中创建各种动态效果和角色。模块提供了Sprite类和Group类,两者关系密切,一般同时出现。Group其实就是Sprite的容器,可以让我们更加方便的管理各个Sprite对象。本节会详细介绍下这两个类。
2024-08-14 12:22:31
916
原创 《pygame游戏开发实战指南》第七节 处理键盘、鼠标和自定义事件
pygame自带的事件如果无法满足要求,那我们可以自定义一个事件。创建自定义事件的步骤非常简单,请看下方代码片段。代码解释如下:#1定义事件类型常量,即event.type,该常量的值必须大于等于且小于等于。#2调用函数创建自定义事件,并添加了两个属性attr1和attr2。这些属性会显示在event.dict中。#3将自定义事件推入事件队列中。我们还可以调用函数定时发送自定义事件。event: 自定义事件类型。millis: 毫秒。loops: 定时器执行次数,0的话表示一直执行。
2024-08-12 14:45:27
1241
原创 《Python爬虫逆向实战》绕过debugger的方法汇总
打开控制台,点击右边的禁用断点按钮。点击之后再刷新下,就会发现debugger失效了。注:这种方法有个 弊端,就是我们在代码中下的断点也都将失效。
2024-08-09 14:45:54
1125
原创 《pygame游戏开发实战指南》第六节 添加文本
在第二节我们提到过,当我们创建文本时,其实是创建了一个Surface对象,文本直接被渲染在这个Surface对象上了。在本节,笔者会带大家了解模块中的函数。
2024-08-07 14:47:48
714
原创 《pygame游戏开发实战指南》第四节 认识Recct对象
在pygame中,Rect对象用来存储和控制被绘制对象所在的矩形区域。在上一节的示例代码3-1中,我们加载了小恐龙图片,并通过get_rect()函数获得了一个Rect对象,然后通过该Rect对象更新了小恐龙所在的矩形区域。除了get_rect函数,我们还可以直接通过Rect类来实例化一个Rect对象,只需要传入左上角xy坐标和宽高值,请看示例代码4-1。import syssys.exit()运行结果如下:代码解释如下:#1通过Rect类实例化了一个坐标为(0, 0),宽高都为100像素的。
2024-08-05 13:19:32
883
原创 《pygame游戏开发实战指南》第三节 理解pygame中的坐标体系
pygame中的坐标体系非常的简单,其实就是一句话:任何对象的左上角都为坐标原点(0, 0),向右为X轴正方向,向下为Y轴正方向。如下图所示。本节主要通过一些示例来带大家理解这一句话。如果读者已经理解的话,可以直接跳过这一节。
2024-08-03 11:53:13
552
原创 《pygame游戏开发实战指南》第二节 认识Surface对象
在上一节中,我们通过函数得到了一个窗口对象,通过函数加载了图片并得到了一个图片对象。这里的窗口对象和图片对象其实都属于Surface类型,我们也直接把它们统称为Surface对象。Surface这个概念在pygame中非常重要,本节会进行详细介绍。# 2.1 什么是Surface我们可以把pygame中的`Surface`对象看做一张画布,我们可以给画布填充颜色,或者绘制任意图像、文本以及线条。我们来简单看下如何在各个`Surface`对象上添加图像,请看示例代码2-1。```python。
2024-08-02 12:38:31
1289
原创 《pygame游戏开发实战指南》第一节 初识pygame
在本节,我们将学习如何下载安装pygame这个游戏开发库,并会运行一个简单的示例项目来认识Pygame。
2024-07-31 10:46:48
1517
原创 Super Marker插件——标记资源,提高效率
这是一款可以给资源添加颜色或图标标记📌的插件,当资源文件比较多的时候,颜色标记可以让你一眼定位到要使用的资源,提高开发效率。
2023-09-23 16:15:32
669
原创 《树莓派项目实战》第十五节 使用L298N驱动板模块驱动双极42步进电机
在第十四节我们已经了解了L298N模块的引脚,这里就不再重复。我们现在来看下步进电机的引脚:笔者本节使用的这个步进电机一共有6个引脚,但我们其实只需要用到其中的4个。根据上方的原理图我们知道,要驱动这个电机我们需要连接1,3,4,6这几个引脚,也就是需要四条连接线,这就是所谓的四线。一共有两个线圈,这就是所谓的两相。我们本节使用的点击也常常被叫做两相四线电机。读者可以前往卖家店铺找下电机原理图。
2023-08-08 12:37:57
1447
原创 《树莓派项目实战》第十四节 使用L298N驱动板模块驱动直流电机(马达)
L298N驱动板一共有这几处引脚位置需要说明,如下图所示。输出引脚,1和2这两个位置各自可以接一个电机。板载5V使能,可以通过该引脚输入5V电压直接给L298N芯片供电,但如果电压过高会烧坏芯片。12V供电输入引脚,接电源正极。驱动板上写着12V,但实际可以接受的电压范围是7-12V。接地引脚,接电源负极。使用的时候应该把树莓派的GND引脚接到这里,即驱动板和树莓派两者需要共地。5V输出,可以通过该引脚给可以给外部设备供电,比如树莓派。
2023-06-13 14:22:42
2260
2
原创 《Cocos Creator游戏实战》签到日历实现思路(包含常规日历)
Label节点用来显示天数编号,而Sprite节点则用来显示奖品图片(AddedUPItem预制体同理)。5. 在Srpite1和Sprite2节点下都有一个滚动视图节点ScrollView,因为活动日期可能会比较长,奖品项会比较多,所以应该使用ScrollVIew。9. Check节点就是一个打勾图片,如果用户签到了,Check节点就会显示在对应的奖品项上。签到日历的实现难度不大,就是麻烦些,只要日期比较方面的代码写好了,那整体功能就不会有什么问题。3. Title Label是显示在日历上的标题。
2023-05-30 12:24:20
663
原创 《树莓派项目实战》第十三节 使用ULN2003驱动板控制28BYJ-48单极步进电机
ULN2003驱动板一共有3处引脚位置需要说明,如下图所示。1.电源引脚,用来给驱动板供电。+极可以接树莓派的5V引脚,-极接地。接外置电源更佳。2.电平输入引脚,接树莓派的GPIO引脚即可。驱动板上的4颗LED灯对应这4个IN引脚,可以直观的显示这4个引脚的工作状态。比如当树莓派输入高电平到IN1引脚时,对应的A LED灯就会亮起。3.28BYJ-48单极步进电机的引脚插在这里。
2023-05-17 13:41:43
994
原创 用Python+OpenCV+Yolov5+PyTorch+PyQt开发的车牌识别软件(包含训练数据)
这是一个可以实时识别车牌的软件,支持图片和视频识别,以下是软件的演示视频。点击查看代码购买地址。
2023-05-13 10:22:08
2153
原创 用yolov5识别点选验证码中的目标内容
如果要过掉点选验证码,首先就要获取目标点选内容的坐标位置,我们可以训练一个yolov5模型来实现这一功能。在本节,我们拿凯格行为验证码来进行演示,验证码图片如下所示。
2023-04-28 18:25:10
2391
3
原创 图像角度回正的几种方案
在识别某些验证码(如点选验证码)的时候,我们会看到验证码图片上要求点选的内容是东倒西歪的,如下图所示。为了更好的识别点选内容,我们最好先将该内容“回正”,也就是要调整图片的角度。现在我们一起来看下有什么好的方案。
2023-04-27 17:24:43
880
原创 《Cocos Creator游戏实战》AIGC之将草稿内容转为真实内容
当创作灵感来的时候,我们可能会先把灵感记录在草稿上,之后再去实现它。比方说有一天,我突然来了游戏创作灵感,想着那可以先把一些简单的组件和布局设计出来,于是就在草稿上画了几个框。L代表Label组件,B代表Button组件,S代表Sprite组件。几天过去了,就算当时的灵感再好,我也不想打开电脑,所以草稿还是只是草稿。我想着,如果有一个AI能够识别我画的草稿,然后自动生成对应组件以及布局的话该有多好啊。于是,我决定训练一个AI,准确来说是一个图像目标检测AI模型,我将用它来识别并定位我草稿上的各个方框。
2023-04-25 20:46:45
925
1
原创 用yolov5+playwright过滑动验证码
在上一节,我们通过opencv-python+playwright成功过掉了QQ空间的滑动验证码。在本节,我们将使用yolov5+playwright来提高通过率。用yolov5识别缺口的准确率很高,但是前提是训练集中的图片质量要高,种类要多,本节训练的模型不足点就在图片的种类不多。笔者此次下载的图片主要是这三种:而QQ空间可能会出现这种的,这就有可能产生识别误差:另外,用于训练的图片数量也不多,这也是可以提高的一个地方。但是总的来看,此次滑动验证码的通过的效果还是令人满意的。
2023-04-22 11:26:19
2900
原创 用opencv+playwright过滑动验证码
在本节,我们将使用opencv和playwright这两个库通过QQ空间的滑动验证码。有时候就算通过了滑动验证码,QQ空间也会提示当前网络异常或者不安全,导致这种情况出现的原因很可能是轨迹出了问题,后台识别出这是程序生成的轨迹。不过我们可以使用机器学习生成更真实的滑动轨迹来避免这种情况出现,笔者会在之后的章节中专门讲解。
2023-04-18 16:22:04
2789
1
原创 《快速掌握PyQt5》专栏整理成书出版啦!
首先非常感谢大家对《快速掌握PyQt5》专栏的喜爱与支持!该专栏现已整理成书出版,书名为《PyQt编程快速上手》。本书内容在专栏内容的基础上进行了多方面的优化,内容更加丰富,知识点布局更加合理,代码和解释也更加简洁易懂。针对粉丝朋友们在使用PyQt时常遇到的一些问题,笔者也在书中给了解决方案。除此之外,本书还详细讲解了PyInstaller和Nuitka打包的使用方法和技巧。相信这本书一定能够让大家快速上手PyQt,并感受到PyQt的魅力。
2023-04-17 08:16:15
2015
6
原创 用机器学习sklearn+opencv-python过计算型验证码
在本节我们用Pillow库生成了计算型验证码图片,相较于纯数字或数字+字母验证码,计算型验证码识别难度要高一点,主要原因在于计算型验证码上的字符数量不一,导致图像切割难度会增加很多。虽然识别出字符后还要计算,但其实字符只要被识别出来的话,计算也就不是什么问题。当然,本节使用的验证码图片在干扰度上还不是特别强,没有加入线条干扰,如果加上线条的话,难度会大很多,因为在图像处理时,很可能会把运算符也给磨平了,导致识别出来的轮廓数量不对。模型也有可能会把一些干扰线条识别成1或者除号/了。
2023-04-15 12:27:41
2371
3
原创 用PyTorch训练模型识别captcha库生成的验证码
接下来我们需要自定义一个Dataset类,将train_captcha文件夹中的图片加载进来并作一定的处理。])从代码中可以看出,每张图片都会通过transforms.Grayscale()这行代码被灰度化。返回的标签是从图片路径中获取到的,不过我们不能直接返回验证码字符串,而是要进行独热编码操作,这样才能提供给PyTorch进行学习。独热编码和解码函数编写如下。"""将字符转为独热码""""""将独热码转为字符"""我们首先用torch.zeros()函数生成一个4行36列,值全是0的张量。
2023-04-13 16:19:47
2756
2
原创 验证码识别过程中切割图片的几种方案
在用机器学习识别验证码的过程中,我们通常会选择把验证码中的各个字符切割出来然后单独识别,切割质量会直接影响识别精度。在本节我们就来看下如何去切割一张验证码图片。
2023-04-11 13:27:57
2109
用Python+PyGame开发的微信飞机大战游戏
2023-06-03
用Python+PyGame制作的经典贪吃蛇游戏
2023-06-03
Cocos Creator俄罗斯方块 包含微信排行榜和好友分享功能
2021-05-06
Python+OpenCV+PyQt开发答题卡识别软件源码
2021-05-04
Cocos Creator微信小游戏好友分享功能
2020-02-22
用Pyinstaller打包Scrapy项目例子
2018-01-10
Pyinstaller打包Scrapy工程项目
2018-01-06
关于cocos stuodio的几个问题
2017-01-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人