# DingDongPrintScCatch **Repository Path**: cwgokay/dingdong-printsc-catch ## Basic Information - **Project Name**: DingDongPrintScCatch - **Description**: DingDongPrintScCatch是一个轻量级的移动端指定区域内容抓取、分析及预警工具 - **Primary Language**: Unknown - **License**: OSL-3.0 - **Default Branch**: dev - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-04-12 - **Last Updated**: 2022-04-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 0.声明及版权信息 ### 0.1.特别声明 * 本仓库发布的`DingDongPrintScCatch`项目中涉及的任何脚本,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。 * 本项目内所有资源文件,禁止任何公众号、自媒体进行任何形式的转载、发布。 * `qichao.jia` 对任何脚本问题概不负责,包括但不限于由任何脚本错误导致的任何损失或损害。 * 间接使用脚本的任何用户,包括但不限于建立VPS或在某些行为违反国家/地区法律或相关法规的情况下进行传播, `qichao.jia` 对于由此引起的任何隐私泄漏或其他后果概不负责。 * 请勿将`DingDongPrintScCatch`项目的任何内容用于商业或非法目的,否则后果自负。 * 如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利,则应及时通知并提供身份证明,所有权证明,我将在收到认证文件后删除相关脚本。 * 以任何方式查看此项目的人或直接或间接使用`DingDongPrintScCatch`项目的任何脚本的使用者都应仔细阅读此声明。`qichao.jia` 保留随时更改或补充此免责声明的权利。一旦使用并复制了任何相关脚本或`DingDongPrintScCatch`项目,则视为您已接受此免责声明。 * 本项目遵循`GPL-3.0 License`协议,如果本特别声明与`GPL-3.0 License`协议有冲突之处,以本特别声明为准。 > ***您使用或者复制了本仓库且本人制作的任何代码或项目,则视为`已接受`此声明,请仔细阅读*** > ***您在本声明未发出之时点使用或者复制了本仓库且本人制作的任何代码或项目且此时还在使用,则视为`已接受`此声明,请仔细阅读*** ## 1.项目介绍 ### 1.1.项目描述 > `DingDongPrintScCatch`是一个轻量级的移动端指定区域内容抓取、分析及消息推送工具; > > 项目集成Python、ADB及Ocr等组件,快速且持续的监听Android移动设备指定区域内容变化,内置决策交易中断条件函数,实现决策参数化配置; > > 项目集成ApkInstaller,包括adb.exe、AdbWinApi.dll、AdbWinUsbApi.dll。开箱即用。 > > 项目集成 **方糖君** 消息推送工具,可实现预警触发后的消息推送( 方糖服务号、Android、Bark iOS、企业微信群机器人、钉钉群机器人、飞书群机器人、测试号 )。 ### 1.2.业务功能 > ADB实现Android设备与Windows设备通信; > > Python结合ADB实现对Android设备的设备信息捕捉、屏幕内容捕捉、模拟操作; > > Python结合Ocr实现影像信息文本挖掘; > > Python结合决策信息实时判断应用程序(**叮咚买菜**)定位站点是否存在资源余量,并`推送消息提醒下单`。 ### 1.3.版本发布 **发布版本(V1.1)**一方库如下: > 主控函数【main(self, OCR_RECOGNITION_MESSAGE)】; > > 屏幕指定位置采集函数【cutPrintScreen(self)】; > > 屏幕内容采集函数【getPrintScreen(self, filePath, ADBpath)】; > > 文件路径设置函数【getfilePath(self, filePath)】; > > 设备信息抓取函数【getDeviceInfo(self)】; > > 信息推送Wechat函数【sendMessage2Wechat(self, message)】; > > 决策交易中断条件函数【judgeProcessBreakCondition(self, message, breakCondition)】; > > 设备页面整幅刷新函数【swipeDevice(self)】。 ### 1.4.获取帮助 - 项目地址:https://gitee.com/tuoxieleng/dingdong-printsc-catch.git - 如需关注项目最新动态或担心以后找不到项目,可以Watch、Star项目,同时也是对项目最好的支持 ## 2.快速入门 > 项目基于Python 3.8.8。个人搭建及测试需保证本地开发环境符合要求(具体要求见“章节2.1环境信息”)。 ### 2.1.环境信息 - **Python 3.8.8** ``` https://www.python.org/downloads/ ``` - **pypi 镜像** 升级 pip 到最新的版本 (>=10.0.0) 后进行配置 ``` python -m pip install --upgrade pip pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple ``` 如果您到 pip 默认源的网络连接较差,使用清华镜像来升级 pip ``` python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip ``` - **`DingDongPrintScCatch`源码** ``` git clone -b master https://gitee.com/tuoxieleng/dingdong-printsc-catch.git ``` - **目录结构** ![输入图片说明](https://images.gitee.com/uploads/images/2022/0408/212649_d7c1d13f_2264466.png "1649420523228.png") - **依赖更新** 依赖缺失时可采用两种方法 ``` 1.Anaconda更新; 2.pip install ModuleName。 ``` ### 2.2.项目设置 - **项目位置** ``` 项目根目录(DingDongPrintScCatch)需保证放置于Windows环境下非中文目录 ``` - **个性化配置** ``` DingDongPrintScCatch\Config目录中config.ini文件维护项目所有个性化参数 ``` `config.ini` ``` [config] # 默认UA DEFAULT_USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36" #测试设备(1080x2400)SCREEN_PARAM #LEFT_PIXEL=0 #TOP_PIXEL=1500 #RIGHT_PIXEL=1080 #DOWN_PIXEL=1600 #测试设备(1080x2412 FHD+)SCREEN_PARAM #LEFT_PIXEL=0 #TOP_PIXEL=1500 #RIGHT_PIXEL=1080 #DOWN_PIXEL=1600 #测试设备(1440x3216 QHD+)SCREEN_PARAM LEFT_PIXEL=0 TOP_PIXEL=2000 RIGHT_PIXEL=1440 DOWN_PIXEL=2120 #屏幕滑动(纵向滑动 500->1500) START_X=500 START_Y=500 END_X=500 END_Y=1500 DURATION_MS=600 #线程休眠时间(冲抵页面整幅刷新耗时) THREAD_SLEEP_TIME=3 #百度云OCR账号信息 APP_ID=10687373 API_KEY=BIziiO4FQbN7n7iu5kPCuEMF SECRET_KEY=yOxbhG3qZp0KvNkB42hstT4aNWXHOitZ #决策交易中断条件 BREAK_CONDITION=本站当前可预约 #推送提示信息 TIPS=收货站点存在可预约时间,请立即跟进! [messenger] #如果想开启下单成功后消息推送,则将 enable 设置为 true,默认为 false 不开启推送 #开启消息推送必须填入 sckey(请务必调整为被通知人sckey) #如何获取请参考 http://sc.ftqq.com/3.version enable = false sckey =SCT114444T2nONwrSQ6SgXnAIIHPyHxuCY ``` ### 2.3.业务拓扑 ![输入图片说明](https://images.gitee.com/uploads/images/2022/0408/212744_88cd583d_2264466.png "1649420384346.png") ## 3.项目启动 ### 3.1.基建配置 - **个性化配置准备** 按照`config.ini`建议调整 ![输入图片说明](https://images.gitee.com/uploads/images/2022/0408/212807_c7108f30_2264466.png "1649420713442.png") - **ADB集成(V1.1版本已集成)** ``` ADB全称Android Debug Bridge,中文翻译安卓调试桥。简单来说就是可以通过这个命令用电脑控制手机。 ``` - **Android Device USB调试开启** ``` 打开手机设置——关于手机,连续点击5次版本号直到提示“您已处于开发者模式”; 在设置中找到“开发者选项”并打开; 在开发者选项中找到“USB调试”并打开; 用数据线连接电脑与手机,并点击“允许”,以授权USB调试; 电脑的命令行窗口中键入adb命令 ``` ![输入图片说明](https://images.gitee.com/uploads/images/2022/0408/212830_19c5b775_2264466.png "1649421812410.png") - **ADB验证** ``` adb devices ``` ![输入图片说明](https://images.gitee.com/uploads/images/2022/0408/212850_50b4666d_2264466.png "1649421092146.png") ### 3.2.脚本启动 ``` DingDongPrintScCatch>py dingDongPrintScCatch.py ``` ![输入图片说明](https://images.gitee.com/uploads/images/2022/0408/212909_b5e14eb6_2264466.png "1649421335059.png") ## 4.验证情况 ### 4.1.执行情况 ![输入图片说明](https://images.gitee.com/uploads/images/2022/0408/212931_804d8957_2264466.png "1649421435307.png") ### 4.2.命中情况 ![输入图片说明](https://images.gitee.com/uploads/images/2022/0408/212951_86ea7444_2264466.png "1649421466933.png") ![输入图片说明](https://images.gitee.com/uploads/images/2022/0408/213008_b498fbb9_2264466.png "1649421509196.png") ### 4.3.监听范围 ![输入图片说明](https://images.gitee.com/uploads/images/2022/0408/213026_2e80e295_2264466.jpeg "preOcrImg.jpg") ### 4.4.消息推送 ![输入图片说明](https://images.gitee.com/uploads/images/2022/0408/213042_f31a5480_2264466.png "1649421554110.png") ## 5.行文说明 ### 5.1.关于个人 ``` 1.普通程序员。 ``` ### 5.2.关于项目 ``` 1.项目完全开源,所有涉及一方库均可被引用,注明来源即可; 2.请务必不要出于商业化或非法目的使用,国难当头; 3.请把珍贵的资源优先让给更需要的人; 4.请优先协助身边的老人,病患以及特殊人群使用此项目; 5.如果你抢购成功了,请尽可能帮助你身边的人。 ``` ### 5.3.写在最后 ``` 1.SkyKai大神使用Kotlin实现Application级别插件(DingDongHelper),并开源(https://github.com/Skykai521/DingDongHelper)。在此抱拳; 2.我曾经自学过两周时间的Python语言,DingDongPrintScCatch(V1.1)虽不能完全傻瓜式使用,但,在此抛砖引玉了; 3.住处疫情防控整体不容乐观,之前的志愿者工作暂缓。工作性质决定了能做的贡献仅限于此; 4.希望世界和平; 5.希望疫情早日结束! ```