JDMemberCloseAccount
学习python操作selenium的一个
-
全自动:短信验证码全自动,图形验证码任选下面的一种,我测试图鉴比较好,又便宜又速度快
-
半自动:短信验证码全自动,图形验证码手动
要求
-
有一定的电脑知识 or 有耐心爱折腾
-
chrome驱动(只在chrome测试了,故只留了chrome)
-
操作系统(只在mac上测试了,非M1)
-
关于手机短信验证码同步到浏览器中,本人采用了websocket来传递验证码
-
关于如何在手机传递到浏览器,这点只说一下我的方式(达到目的即可)
-
安卓端:利用tasker软件监听,一旦监听到就立即通过websocket推送过来
-
安卓端:利用macrodroid软件监听,一旦监听到就立即通过websocket推送过来
-
关于
tasker
和macrodroid
配置均在 extra 目录下
-
安装方法
-
克隆到本地
git clone https://github.com/yqchilde/JDMemberCloseAccount.git
-
安装所需要的包
pip3 install -r requirements.txt
-
下载对应的浏览器驱动放到项目的
drivers
文件夹下面chrome
请访问chrome://version/
查看浏览器的版本,然后去 chromedriver 下载对应的版本/系统驱动
-
配置
config.json
{ "browserType": "Chrome", "headless": false, "binary": "", "cjy_validation": false, "cjy_username": "", "cjy_password": "", "cjy_soft_id": "", "cjy_kind": 9101, "tj_validation": false, "tj_username": "", "tj_password": "", "tj_type_id": 19, "ws_conn_url": "ws://localhost:5201/subscribe", "ws_timeout": 60, "selenium_timeout": 30, "skip_shops": "", "phone_tail_number": "", "mobile_cookie": "", "users": {} }
-
browserType
: 浏览器类型 -
headless
: 无头模式,建议默认设置 -
binary
: 可执行路径,如果驱动没有找到浏览器的话需要你手动配置 -
cjy_validation
: 是否开启超级鹰验证图形验证码 -
cjy_username
: 超级鹰账号,仅在 cjy_validation 为 true 时需要设置 -
cjy_password
: 超级鹰密码,仅在 cjy_validation 为 true 时需要设置 -
cjy_soft_id
: 超级鹰软件ID,仅在 cjy_validation 为 true 时需要设置 -
cjy_kind
: 超级鹰验证码类型,仅在 cjy_validation 为 true 时需要设置,且该项目指定为9101
-
tj_validation
: 是否开启图鉴验证图形验证码 -
tj_username
: 图鉴账号,仅在 tj_validation 为 true 时需要设置 -
tj_password
: 图鉴密码,仅在 tj_validation 为 true 时需要设置 -
tj_type_id
: 超级鹰验证码类型,仅在 tj_validation 为 true 时需要设置,且该项目指定为19
-
ws_conn_url
: websocket链接地址,不用动 -
ws_timeout
: websocket接收验证码时间超时时间,超时会跳过当前店铺,进行下一个店铺,默认为60秒 -
selenium_timeout
: selenium操作超时时间,超过会跳过当前店铺,进行下一个店铺,默认为30秒 -
skip_shops
: 需要跳过的店铺,需要填写卡包中的完整店铺名称,为了效率没做模糊匹配,多个店铺用逗号隔开 -
phone_tail_number
: 手机后4位尾号,若填写将会校验店铺尾号是否是规定的,不符合就跳过 -
mobile_cookie
: 手机端cookie,是pt_key开头的那个 -
users
: web端cookie,通过add_cookie.py添加
-
-
添加
cookie
-
web端cookie:请在项目目录下执行
python3 add_cookie.py
, 在打开的浏览器界面登录你的京东,此时你可以看到config.json
已经有了你的用户信息(请不要随意泄露你的cookie) -
手机端cookie:在
config.json
中写入mobile_cookie
项,注意是pt_key开头的那个(请不要随意泄露你的cookie)
-
-
执行主程序
在项目目录下执行
python3 main.py
,等待执行完毕即可
websocket服务端运行(以下两种方法任一都行,图省事就用2)
-
手动运行
go run ./cmd/jd_wstool
-
下载 jd_wstool, 选择自己的电脑系统对应的压缩包,解压运行
手机端短信如何传递给电脑端
-
安卓端,我是用了tasker监听,总是随便一个可以监听到的,然后请求接口就行,接口如下
-
安卓端,用
Macrodroid监听
,原理一样
- 关于
tasker
和macrodroid
配置均在 extra 目录下
http://同局域网IP:5201/publish?smsCode=短信验证码
例如:
http://192.168.2.100:5201/publish?smsCode=12345
同局域网IP会在运行 `./jd_wstool 或 jd_wstool.exe` 时提示出来,例如:
listening on http://192.168.2.100:5201
ScreenShots
Thanks
感谢以下作者开源JD相关项目供我学习使用