PythonWxUI学习

网络请求

前几天京东出了一个投票活动,给心仪的主播投票。测试后发现,只要是换了浏览器就能继续投票,也就是不限设备。初步猜测使用了浏览器的本地存储。扒代码发现果然如此,使用的是浏览器的指纹标识。

VUE也没有混淆
VUE也没有混淆

__扒到网络请求

paste image
paste image

那就好办了反正是32位,直接使用md5生成一个,用户id 随便写一个先,比如1。

成功了,后端只校验了是否重复
成功了,后端只校验了是否重复

听朋友说冠军能和明星连线,那就帮Ta投票吧。

这个选手四层相识
这个选手四层相识
paste image
paste image

写在了java代码中,刷到了前10。怕被发现,停了。没想到第二天,第一刷的更狠。。。

import wx

app = wx.App()
window = wx.Frame(None, title="blablabla", size=(400, 300))
# window.SetIcon(wx.Icon('favicon.ico', wx.BITMAP_TYPE_ICO))

panel = wx.Panel(window)

panel.SetBackgroundColour((255, 255, 255, 1))
label = wx.StaticText(panel, label="这是个什么", pos=(20, 10))

labelId = wx.StaticText(panel, label="输入id", pos=(20, 40))
edit = wx.TextCtrl(panel, value="19", pos=(80, 40))

labelTime = wx.StaticText(panel, label="最长延时 ", pos=(20, 80))
editTime = wx.TextCtrl(panel, value="30", pos=(80, 80))

button = wx.Button(panel, label="开始", pos=(20, 120))
labelsk = wx.StaticText(panel, label="", pos=(20, 150))

log = wx.StaticText(panel, label="", pos=(20, 180))
timeStrSK = wx.StaticText(panel, label="", pos=(20, 210))

rank = wx.StaticText(panel,label="",pos=(300,40))

# timeStrWJ  =wx.StaticText(panel,label="",pos=(20,200))
def click(v):
    if button.GetLabel() == "进行中":
        label.SetLabel("已经进行中了宝儿")
        return;
    if len(str(edit.GetValue())) > 0:
        label.SetLabel("正在努力追第一")
        button.SetLabelText("进行中")
        start(edit.GetValue())
    else:
        label.SetLabel("给谁刷啊宝儿")


import requests
import time
import hashlib
import json
import threading
import random

global cnt19
cnt19 = 0


def shuashuashua(id):
    t = time.time()
    md5 = hashlib.md5(str(t).encode(encoding='UTF-8')).hexdigest()
    url = 'https://jdgj-h5.ecmax.cn/jdt/vote'
    response = requests.post(url, json={"deviceId": md5, "userId": id})
    js = json.loads(response.text)
    label.SetLabel("正在努力追第一")

    global cnt19
    cnt19 += 1
    rankStr = ""
    for index,item in enumerate(js["data"]):
        if index<10:
            rankStr+=str(item["name"])+" "+str(item["vote"])+"\n";
        if str(item["id"]) == str(id):
            labelsk.SetLabel(str(item["name"]) + " 当前刷了 " + str(cnt19))
            info = "当前票数:" + str(item["vote"]) + ",当前最多票数:" + \
               str(js["data"][0]["vote"]) + " " + str(js["data"][0]["name"])
            log.SetLabel(info)
            print(info)
    # 延时0~30秒
    rank.SetLabel(rankStr)
  try:
        tm = int(editTime.GetValue())
        if tm == 0:
            tm = 0.5
    except:
        tm = 0.5

    r = random.randint(0, tm)
    for i in range(0, r):
        time.sleep(1)
        timeStrSK.SetLabel(
            str(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) + "-->" + str(r - i - 1) + "s后刷新...")
    shuashuashua(id)


def start(id):
    thread_shike = threading.Thread(target=shuashuashua, args=(str(id),))
    thread_shike.start()


button.Bind(wx.EVT_BUTTON, click)
window.Show(True)
app.MainLoop()

界面效果


but,UI界面刚做完了,他们的投票系统升就级了~,必须登录了。那就完了……