# JDMemberCloseAccount
* [介绍](#介绍)
* [声明](#声明)
* [须知](#须知)
* [思路](#思路)
* [如何使用本项目](#如何使用本项目)
* [一、下载项目以及配置浏览器驱动](#一下载项目以及配置浏览器驱动)
* [二、获取 jd\_wstool 监听地址及选择 jd\_wstool 工具(IOS未越狱跳过此步骤)](#二获取-jd_wstool-监听地址及选择-jd_wstool-工具ios未越狱跳过此步骤)
* [三、填写配置](#三配置项目)
* [四、运行程序](#四运行程序)
* [关于 jd\_wstool 工具](#关于-jd_wstool-工具)
* [常见问题](#常见问题)
* [测试](#测试)
* [ScreenShots](#screenshots)
* [TG讨论群](#tg讨论群)
* [Thanks](#thanks)
## 介绍
本项目是我学习python操作selenium的一个🌰,也是一种京东自动退会方案,用来全自动退出京东加入的所有店铺会员
## 声明
1. 本项目仅限于学习研究selenium库的操作,以及一些python知识,不含收集用户信息
## 须知
1. 有一定的电脑知识 or 有耐心爱折腾
2. chrome驱动(只在chrome测试了,故只留了chrome)
3. 操作系统(只在mac上测试了,非M1)
4. 使用`python3.x`版本执行
5. 有一定python基础知识,没有的话先去学一下,起码得会搭python环境
6. [视频讲解-脚本如何使用](https://www.bilibili.com/video/BV1aR4y1E7Eq/)
## 思路
![项目思路](https://github.com/yqchilde/JDMemberCloseAccount/blob/main/doc/project_1.png)
1. 利用selenium打开退会页面
2. 第一关:手机验证码
1. 安卓端(以下两种任选一个用就行):
* 利用[macrodroid软件](https://wwa.lanzoui.com/iSwocpqow3a) 监听,一旦监听到就立即通过HTTP请求利用websocket推送过来,由`jd_wstool`
工具监听并送到selenium中填写
* 利用[tasker软件](https://wwa.lanzoui.com/iLeAYps1x1i) 监听,同上
* 使用方法:下载以上任一软件,导入相应的配置,并修改自己的IP为`main.py`程序监听的IP即可
* 关于 `tasker` 和 `macrodroid` 配置均在 [extra](https://github.com/yqchilde/JDMemberCloseAccount/tree/main/extra) 目录下
2. ios端:
1. 越狱机(来自[@curtinlv](https://github.com/curtinlv)
大佬的越狱监听短信方法,[#61](https://github.com/yqchilde/JDMemberCloseAccount/pull/61) )
* 像安卓端一样传验证码(基本逻辑:iOS设备通过访问短信数据库,监听最新的jd验证码并传到 `jd_wstool`)
1.
下载 [getiOSMessages.py](https://github.com/yqchilde/JDMemberCloseAccount/blob/main/extra/iOSPlus/getiOSMessages.py)
传到手机上(测试Pythonista 3可以,其他软件自行研究)
2. 填写`jd_wstool` 监听地址ip
如:监听地址1: http://192.168.0.101:5201 ,填在脚本开头 ipaddr= '192.168.0.101'
3. 运行脚本
2. 非越狱机 (任选以下一种类型)
> 首先感谢tg群的朋友[@millerchen](https://github.com/bluewatercg)
提供的思路,具体实现方案是电脑屏幕留出一个区域用来显示手机投屏的地方(如果你电脑是Mac,无需投屏,只需要打开IMessage,并保持短信同步即可,然后OCR识别IMessage),然后打开短信列表,然后找个截图工具记一下当前需要识别的的`左上角`和`右下角`坐标(最好截取那一整条短信的坐标,当然截取范围越小,识别越快),然后通过ocr工具识别数字验证码
> **注意:** OCR只是处理识别短信验证码并填入,不要误解为图形验证码也可以解决。如果定位不准,看一下项目目录生成的`captcha_screenshot.png`
图片位置在当前屏幕的哪个位置,[测试识别效果gif点我查看](https://github.com/yqchilde/JDMemberCloseAccount#screenshots) , 此外,坐标和电脑分辨率有关,如果分辨是是1080P,那么qq截图识别的坐标就是刚好一比一的,比我的是4k显示器,是以百分之200显示的,那所有坐标就要乘以2了
百度ocr (
之前用过的用户还是免费500次/天的额度,新用户调整为1000次/月的额度,调整详情参考[这里](https://ai.baidu.com/support/news?action=detail&id=2390))
* 需要在config.yaml中配置如下参数:
* sms_captcha.is_ocr设置为 true
* sms_captcha.is_ocr.type设置为 baidu
* sms_captcha.is_ocr.baidu_app_id补充完整
* sms_captcha.is_ocr.baidu_api_key补充完整
* sms_captcha.is_ocr.baidu_secret_key补充完整
阿里云ocr (
用户新购0元500次,后续500次/0.01元,开通地址[阿里云市场](https://market.aliyun.com/products/57124001/cmapi028554.html?spm=5176.2020520132.101.2.608172181RzlnC#sku=yuncode2255400000))
* 同上,需要在config.yaml中配置如下参数:
* sms_captcha.is_ocr设置为 true
* sms_captcha.is_ocr.type设置为 aliyun
* sms_captcha.is_ocr.aliyun_appcode补充完整
easyocr (免费,本地识别)
* 同上,需要在config.yaml中配置如下参数:
* sms_captcha.is_ocr设置为 true
* sms_captcha.is_ocr.type设置为 easyocr
* 使用时注意框选识别的范围只显示6位数字验证码(现支持一整条完整短信的区域,当然范围越大识别速度也会相应增加,区域扩大是为了优化某些用户短信验证码6位数字每次位置不一致问题)(毕竟免费开源,识别条件有点苛刻)
百度翻译 (免费额度 10000次/每月,开通地址 [百度翻译开放平台](https://fanyi-api.baidu.com/register))
**开通教程:**
1. 打开 [百度翻译开放平台](https://fanyi-api.baidu.com/register) 注册个人开发者并实名认证
2. 打开 [开发者信息](https://fanyi-api.baidu.com/api/trans/product/desktop?req=developer) 查看appid 和 秘钥
3. 打开 [服务选择](https://fanyi-api.baidu.com/choose) 选择图片翻译服务开通
**配置信息:**
* 同上,需要在config.yaml中配置如下参数:
* sms_captcha.is_ocr设置为 true
* sms_captcha.is_ocr.type设置为 baidu_fanyi
* sms_captcha.is_ocr.baidu_fanyi_appid补充完整
* sms_captcha.is_ocr.baidu_fanyi_appkey补充完整
3. 第二关:图形验证码(任选以下一种类型,更新文档时,验证方式为滑块验证码或点选式验证码,**滑块已内置,仅需个人解决点选式**)
1. 本地识别
* 2022-06-06更新文档:之前的本地识别皆已失效,需重新训练
2. 收费的打码平台
* 图形验证码用 [超级鹰打码](https://www.chaojiying.com/) ,费用是1块=1000积分,一次扣15积分
* 图形验证码用 [图鉴打码](http://www.ttshitu.com/) ,费用是1块=1积分,一次扣0.01积分
## 如何使用本项目
### 一、下载项目以及配置浏览器驱动
**注意:** 以下关于`python3`, `pip3` 命令只代表`python3.x`环境,故如果电脑`python`环境已是3.x,可直接用`python`、`pip`代替
1. 克隆到本地或下载项目压缩包到本地
```shell
git clone https://github.com/yqchilde/JDMemberCloseAccount.git
```
2. 在项目根目录下打开终端执行以下命令,安装所需要的包
```shell
pip3 install -r requirements.txt
```
如果因没有代理拉不下包,请使用国内阿里云代理,执行如下命令:
```shell
pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
```
3. 下载对应的浏览器驱�