氢云小屋 孤单不是与生俱来,而是由你爱上一个人的那一刻开始
歌曲封面 未知作品

友链申请/RSS订阅/网站地图

黑ICP备2024017461号-2

网站已运行 206 天 3 小时 6 分

Powered by Typecho & Sunny

2 online · 124 ms

Title

Python实现椰子平台接码的接入

氢云

·

Python

·

Article
⚠️ 本文最后更新于2024年07月21日,已经过了185天没有更新,若内容或图片失效,请留言反馈

说明

​1. 本篇文章内容仅供学习交流,请不要违法使用哦!!!

​2. 本文章基于椰子平台进行接码,椰子是所有接码平台中接入较难的一个,会了这个,其他接码平台也能很轻松的接入

​3. 椰子平台地址:http://h5.yezi66.net:90/invite/1221733

​4. 椰子平台开发文档:https://note.youdao.com/s/LdXvaYoM

开发环境

编译器:Pycharm

Python版本:3.11

开发教程

一、导入下列软件包(必备)
♾️ Python 代码:
import requests
import json
import time
二、登陆配置
  1. 观察文档中的登陆请求示例

    椰子平台登陆请求示例截图

    根据给的参数,可以先把变量定义好(全局变量),方便后续使用

    ♾️ Python 代码:
    # 椰子平台账号密码
    username = ''
    password = ''
    
    # 请求域名
    # 备用域名:http://api.nnanx.com:90
    api_url = 'http://api.sqhyw.net:90'
  2. 获取登陆响应信息

    ♾️ python 代码:
    def getToken():
        # 使用GET请求登陆并获取响应
        response = requests.get(api_url + "/api/logins?username=" +     username + "&password=" + password)
        # 将相应内容转为Json格式
        result = json.loads(response.text)
  3. 调试输出登陆响应信息

    登录模块调试输出截图

    运行后若出现类似于图片中的运行日志,即为登陆成功

  4. 返回Token内容、余额内容

    在getToken函数中,新增代码

    ♾️ python 代码:
    return result['token'],result['data'][0]['money']
  5. 椰子平台登陆部分总代码

    ♾️ python 代码:
    # 全局变量
    username = ''
    password = ''
    api_url = 'http://api.sqhyw.net:90'
    
    # 登陆函数
    def getToken():
        response = requests.get(api_url + "/api/logins?username=" +     username + "&password=" + password)
        result = json.loads(response.text)
        return result['token'],result['data'][0]['money']    
三、取号操作(普通取卡为例)
  1. 观察文档中的取号请求示例

    椰子平台取号示例截图

    普通取号操作中,仅需token(登陆返回的参数)和project_id(项目ID,根据需求项目自行查询)两个参数,其中project_id需要设置全局参数

    ♾️ python 代码:
    # 项目ID
    project_id = ''
  2. 获取取号响应信息

    ♾️ python 代码:
    def getPhoneNumber(token):
        response = requests.get(api_url + "/api/get_mobile?token=" + token + "&project_id=" + project_id)
        result = json.loads(response.text)
  3. 调试输出取号响应信息

    取号模块调试输出截图

    运行后若出现类似于图片中的运行日志,即为取号成功

  4. 返回取到的手机号

    在getPhoneNumber函数中,新增以下代码

    ♾️ python 代码:
    return result['mobile']
  5. 椰子平台取号部分总代码

    ♾️ python 代码:
    # 全局变量
    project_id = ''
    
    # 取号函数
    def getPhoneNumber(token):
        response = requests.get(api_url + "/api/get_mobile?token=" + token + "&project_id=" + project_id)
        result = json.loads(response.text)
        return result['mobile']
三、释放操作(取号后验证码未发送时进行该操作)
  1. 观察文档中的释放请求示例

    椰子平台释放示例截图

    其中需要3个参数:token(登陆操作返回的token)、project_id(项目ID)、phone_num(取号操作返回的手机号)

​ 这三个参数都已经有了,无需再重新定义

  1. 获取释放响应信息

    ♾️ python 代码:
    def release(token, phone_num):
        response = requests.get(api_url + "/api/free_mobile?token=" + token + "&project_id==" + project_id + "&phone_num=" + phone_num)
        result = json.loads(response.text)
  2. 调试输出释放响应信息

    释放模块调试输出截图

    运行后若出现图片中的运行日志,即为释放成功

  3. 返回释放状态

    在release函数中,新增以下代码

    ♾️ python 代码:
    return result['message']
  4. 椰子平台释放部分总代码

    ♾️ python 代码:
    # 释放函数
    def release(token, phone_num):
        response = requests.get(api_url + "/api/free_mobile?token=" + token + "&project_id==" + project_id + "&phone_num=" + phone_num)
        result = json.loads(response.text)
        return result['message']
四、取验证码操作
  1. 观察文档中的取码请求示例

    椰子平台取码示例截图

    其中需要3个参数:token(登陆操作返回的token)、project_id(项目ID)、phone_num(取号操作返回的手机号)

    这三个参数都已经有了,无需再重新定义

  2. 获取取码响应信息

    ♾️ python 代码:
    def getSms(token, phone_num):
        i = 0
        # 循环获取验证码
        while i < 30:
            i = i + 1
            response = requests.get(api_url + "/api/get_message?token=" + token + "&project_id=" + project_id + "&phone_num=" + phone_num)
            result = json.loads(response.text)
            # 遍历查找code键(对应验证码)
            if "code" in result:
                # 获取到验证码,返回验证码
                return result['code']
            else:
                # 验证码获取失败延迟后再次查询
                time.sleep(3)
        # 未获取到验证码,返回空值
        return ""
  3. 调试输出取码响应信息

​ 测试阶段需要手动复制手机号前往项目地址发送验证码

模拟发送验证码截图

取码模块调试输出截图

​ 测试的时候忘记打印返回结果了,将就看吧

  1. 注意:

    若取码失败,应及时进行释放操作,尤其是多线程操作的时候

椰子平台接入总代码

♾️ python 代码:
import requests
import json
import time

username = ''
password = ''
api_url = ''
project_id = ''


def getToken():
    response = requests.get(api_url + "/api/logins?username=" + username + "&password=" + password)
    result = json.loads(response.text)
    return result['token'], result['data'][0]['money']


def getPhoneNumber(token):
    response = requests.get(api_url + "/api/get_mobile?token=" + token + "&project_id=" + project_id)
    result = json.loads(response.text)
    return result['mobile']


def release(token, phone_num):
    response = requests.get(
        api_url + "/api/free_mobile?token=" + token + "&project_id==" + project_id + "&phone_num=" + phone_num)
    result = json.loads(response.text)
    return result['message']


def getSms(token, phone_num):
    i = 0
    while i < 30:
        i = i + 1
        response = requests.get(
            api_url + "/api/get_message?token=" + token + "&project_id=" + project_id + "&phone_num=" + phone_num)
        result = json.loads(response.text)
        if "code" in result:
            return result['code']
        else:
            time.sleep(3)
    return ""


if __name__ == '__main__':
    token, money = getToken()
    phone_num = getPhoneNumber(token)
    print(f'获取到的手机号为{phone_num}')
    # 此处可接入项目注册代码模块
    sms = getSms(token, phone_num)
    if sms != '':
        print(sms)
    else:
        release(token, phone_num)

后记

以上教程为简易版的,实际开发会涉及更复杂的操作

需要有一定的代码基础

没啥说的了,就这样吧

后续可能会写注册机的教程(涉及抓包、发验证码,取密钥等)

广告

页底广告 页底广告
此页面评论区已关闭
搜 索 消 息 足 迹
你还不曾留言过..
你还不曾留下足迹..
博主 不再显示
博主