DollyDino99 / JDMemberCloseAccount

学习python操作selenium的一个🌰,用来 自动/半自动 退出加入的所有店铺会员

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

JDMemberCloseAccount

学习python操作selenium的一个🌰,用来 全自动/半自动 退出加入的所有店铺会员

  • 全自动:短信验证码全自动,图形验证码任选下面的一种,我测试图鉴比较好,又便宜又速度快

    • 图形验证码用 超级鹰打码 ,费用是1块=1000积分,一次扣15积分

    • 图形验证码用 图鉴打码 ,费用是1块=1积分,一次扣0.01积分

  • 半自动:短信验证码全自动,图形验证码手动

要求

  1. 有一定的电脑知识 or 有耐心爱折腾

  2. chrome驱动(只在chrome测试了,故只留了chrome)

  3. 操作系统(只在mac上测试了,非M1)

  4. 关于手机短信验证码同步到浏览器中,本人采用了websocket来传递验证码

  5. 关于如何在手机传递到浏览器,这点只说一下我的方式(达到目的即可)

    • 安卓端:利用tasker软件监听,一旦监听到就立即通过websocket推送过来

    • 安卓端:利用macrodroid软件监听,一旦监听到就立即通过websocket推送过来

    • 关于 taskermacrodroid 配置均在 extra 目录下

安装方法

  1. 克隆到本地

    git clone https://github.com/yqchilde/JDMemberCloseAccount.git
  2. 安装所需要的包

    pip3 install -r requirements.txt
  3. 下载对应的浏览器驱动放到项目的drivers文件夹下面

    • chrome请访问chrome://version/查看浏览器的版本,然后去 chromedriver 下载对应的版本/系统驱动
  4. 配置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添加

  5. 添加cookie

    • web端cookie:请在项目目录下执行python3 add_cookie.py, 在打开的浏览器界面登录你的京东,此时你可以看到config.json已经有了你的用户信息(请不要随意泄露你的cookie

    • 手机端cookie:在 config.json 中写入 mobile_cookie 项,注意是pt_key开头的那个(请不要随意泄露你的cookie

  6. 执行主程序

    在项目目录下执行python3 main.py,等待执行完毕即可

websocket服务端运行(以下两种方法任一都行,图省事就用2)

  1. 手动运行 go run ./cmd/jd_wstool

  2. 下载 jd_wstool, 选择自己的电脑系统对应的压缩包,解压运行

测试图

手机端短信如何传递给电脑端

  1. 安卓端,我是用了tasker监听,总是随便一个可以监听到的,然后请求接口就行,接口如下

  2. 安卓端,用 Macrodroid监听,原理一样

  • 关于 taskermacrodroid 配置均在 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

测试图1

测试图2

Thanks

感谢以下作者开源JD相关项目供我学习使用

@AntonVanke

About

学习python操作selenium的一个🌰,用来 自动/半自动 退出加入的所有店铺会员

License:MIT License


Languages

Language:Python 69.8%Language:Go 27.0%Language:Makefile 3.3%