说明
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
二、登陆配置
观察文档中的登陆请求示例
根据给的参数,可以先把变量定义好(全局变量),方便后续使用
♾️ Python 代码:# 椰子平台账号密码 username = '' password = '' # 请求域名 # 备用域名:http://api.nnanx.com:90 api_url = 'http://api.sqhyw.net:90'
获取登陆响应信息
♾️ python 代码:def getToken(): # 使用GET请求登陆并获取响应 response = requests.get(api_url + "/api/logins?username=" + username + "&password=" + password) # 将相应内容转为Json格式 result = json.loads(response.text)
调试输出登陆响应信息
运行后若出现类似于图片中的运行日志,即为登陆成功
返回Token内容、余额内容
在getToken函数中,新增代码
♾️ python 代码:return result['token'],result['data'][0]['money']
椰子平台登陆部分总代码
♾️ 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']
三、取号操作(普通取卡为例)
观察文档中的取号请求示例
普通取号操作中,仅需token(登陆返回的参数)和project_id(项目ID,根据需求项目自行查询)两个参数,其中project_id需要设置全局参数
♾️ python 代码:# 项目ID project_id = ''
获取取号响应信息
♾️ python 代码:def getPhoneNumber(token): response = requests.get(api_url + "/api/get_mobile?token=" + token + "&project_id=" + project_id) result = json.loads(response.text)
调试输出取号响应信息
运行后若出现类似于图片中的运行日志,即为取号成功
返回取到的手机号
在getPhoneNumber函数中,新增以下代码
♾️ python 代码:return result['mobile']
椰子平台取号部分总代码
♾️ 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']
三、释放操作(取号后验证码未发送时进行该操作)
观察文档中的释放请求示例
其中需要3个参数:token(登陆操作返回的token)、project_id(项目ID)、phone_num(取号操作返回的手机号)
这三个参数都已经有了,无需再重新定义
获取释放响应信息
♾️ 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)
调试输出释放响应信息
运行后若出现图片中的运行日志,即为释放成功
返回释放状态
在release函数中,新增以下代码
♾️ python 代码:return result['message']
椰子平台释放部分总代码
♾️ 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']
四、取验证码操作
观察文档中的取码请求示例
其中需要3个参数:token(登陆操作返回的token)、project_id(项目ID)、phone_num(取号操作返回的手机号)
这三个参数都已经有了,无需再重新定义
获取取码响应信息
♾️ 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 ""
- 调试输出取码响应信息
测试阶段需要手动复制手机号前往项目地址发送验证码
测试的时候忘记打印返回结果了,将就看吧
注意:
若取码失败,应及时进行释放操作,尤其是多线程操作的时候
椰子平台接入总代码
♾️ 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)
后记
以上教程为简易版的,实际开发会涉及更复杂的操作
需要有一定的代码基础
没啥说的了,就这样吧
后续可能会写注册机的教程(涉及抓包、发验证码,取密钥等)