Python3实现自动抽奖

------------恢复内容开始------------

#!/usr/bin/env python3
# _*_coding: utf-8
import os
import yaml
import requests
import time
from time import sleep

current_path = os.path.abspath(os.path.dirname(__file__))  # 获取当前目录的路径
config_dir = current_path + "/choujiang.yml"    # 获取配置文件路径 
def post_http(url, headers, data):    # Post请求方式
    response = requests.post(url=url, headers=headers, data=data)
    print(response)
    print(f"\n响应码: {response.status_code}")
    print(f"\n响应结果: {response.text}")
    return response

def get_http(url, headers,data=None):  # Get请求方式
    response = requests.get(url=url, headers=headers, data=data)
    print(response)
    print(f"\n响应码: {response.status_code}")
#    print(f"\n响应结果: {response.text}")
    return response

def read_yaml():      # 打开读取yaml配置文件内容
    with open(config_dir, 'r',  encoding="utf-8" ) as f:
        content = f.read()
        contents = yaml.load(content, Loader=yaml.FullLoader)
    return contents

def get_url(api_name):   # 传入url地址
    content=read_yaml()
    new_url ='http://' + content[api_name]['host'] + content[api_name]['url']
    print(f"\n请求地址:{new_url}")
    return new_url

def get_headers(api_name):   # 获取请求头
    content = read_yaml()
    new_headers = content[api_name]['headers']
    #print(f"\n请求头: {new_headers}")
    return new_headers

def get_data(api_name):  # 获取数据
    content = read_yaml()
    new_data = content[api_name]['data']
    return new_data

def get_method(api_name): # 获取请求方法
    content = read_yaml()
    new_method = content[api_name]['method']
    return new_method

def get_time():
    # 以毫秒为单位的时间戳
    get_now_milli_time = int(time.time() * 1000)
    print(get_now_milli_time)

def send_request(api_name):   # 发送请求
    try:
        # 获取接口请求参数
        method = get_method(api_name)
        url = get_url(api_name)
        headers = get_headers(api_name)
        # 区分Get和Post方法
        if method == "Get":
            response = get_http(url, headers, data=None)
        else:
            data = get_data(api_name)
            response = post_http(url, headers, data)
        return response
    except Exception as e:
        print(f"\n接口访问出错啦: {e}")

if __name__ == '__main__':   # 执行接口
    totalData=send_request('prizes').json()
    print("第一次抽奖")
    counts =totalData['data']['counts']
    print(f"总抽奖次数:{counts}")

    num = 1
    while num <= counts:
        num += 1
        print(f"抽奖次数:{num}次")
        data = send_request('draws').json()
        if data['code'] == '1003':
            print(f"抽奖次数:{num}次")
            totalData = send_request('prizes').json()
            counts = totalData['data']['counts']
            print(f"总抽奖次数:{counts}")

 

choujiang.yml文件用来存放url的数据,一些url中的数据可以通过Charles抓包工具获

 

 

 

 

 

------------恢复内容结束------------

posted @ 2021-09-08 13:48  chloe_qq  阅读(131)  评论(0编辑  收藏  举报