PythonWxUI学习
网络请求
前几天京东出了一个投票活动,给心仪的主播投票。测试后发现,只要是换了浏览器就能继续投票,也就是不限设备。初步猜测使用了浏览器的本地存储。扒代码发现果然如此,使用的是浏览器的指纹标识。
__扒到网络请求
那就好办了反正是32位,直接使用md5生成一个,用户id 随便写一个先,比如1。
听朋友说冠军能和明星连线,那就帮Ta投票吧。
写在了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界面刚做完了,他们的投票系统升就级了~,必须登录了。那就完了……