【某大学学术活动抢票python脚本】

首先下载fiddler软件用来获取账号信息

fiddler软件(香滴很),网上百度下载就好。最好官网下载,防止下载到木马文件。

设置浏览器代理


这是通过firfox浏览器的插件直接设置的,具体设置代理的步骤可以百度。浏览器不同设置代理的方式也不太一样。
浏览器设置的代理地址:127.0.0.1:8888

设置fiddler软件的代理端口

在这里插入图片描述
在fiddler软件上设置代理端口,端口号要和浏览器设置的一致。

抓包(重点来了)

在这里插入图片描述
找到目标网站发送数据的请求

在这里插入图片描述
将找到的cookie值以及Authorization值保存下来。

在这里插入图片描述
图片中id值是本次活动的序号,先保存到小本本上,有用。

准备工作结束

经过上述信息捕捉的环境准备,下面跑代码就ok了。代码粘贴复制,信息一填,一把梭。奥里给。

代码如下:

// An highlighted block
import requests
import datetime
import time
import threading


def httpReuest_cratch(id,token, cookie):
    datas = {"academicId": id, "userId": 学号, "userName": "用户名", "userCollege": "所属学院", "userGrade": 年纪,
             "registrationTime": str((datetime.datetime.now()).strftime('%Y-%m-%d %H:%M:%S')), "useState": 0
       , "token": str(token)}
    header = {
    # 登录抓包获取的头部
    "Connection": "keep-alive",
    "Content-Length":"331",
    "Accept": "application/json, text/plain, */*",
    "Authorization":str(token),
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36",
    "Content-Type": "application/x-www-form-urlencoded",
    "Origin": "http://网站域名地址/",
    "Referer":"http://网站域名地址/",
    "Accept-Language": "zh-CN,zh;q=0.9",
    "Accept-Encoding": "gzip, deflate",
    }
    header["Cookie"] = str(cookie)
    # requests.head()
    s = requests.session()
    login_url = "抓包处的地址" # 自己找带Authorization以及cookie值的地址
    login_ret = s.post(login_url, headers=header, data=datas)
    print(login_ret.text)
    print(login_ret.status_code)


def thred_http(id, token, cookie, thred_conut):
    try:
        i = 0
        # 开启线程数目
        tasks_number = thred_conut
        print('启动多线程')
        time1 = time.perf_counter()
        while i < tasks_number:
            t = threading.Thread(target=httpReuest_cratch(id, token, cookie))
            t.start()
            i += 1
            print(i)
        time2 = time.perf_counter()
        times = time2 - time1
        print(times)
        print(times / tasks_number)
    except Exception as e:
        print(e)


while True:
    time_temp = current_time = str((datetime.datetime.now() + datetime.timedelta(seconds=0)).strftime('%Y-%m-%d %H:%M:%S'))
    print(time_temp)
    # 此处设置的是抢票的时间(格式如下)
    if time_temp == "2022-03-23 19:00:00":
        break
        
thred_http(id, token, cookie, 44)  # id :活动序列号,token :Authorization值,cookie:cookie值,44:是线程数量,建议不要设置太大。如果值太大会造成网络拥堵,服务器负担大。(简而言之,发送请求数量太大,服务器宕机了,运维人员会看日志记录的。懂得懂得。)
print(id, token, cookie)

最终结果

在这里插入图片描述
此处结果显示无法报名是因为,今天的活动没了,已经结束了,报名成功会提示你,报名成功。
一把梭。

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值