前端尝试
var userName = ""
var userId = ""
var userPhone = ""
var delay = 50
var a = open("https://xyymzyy.buaa.edu.cn/patient/dentalOrder?code=05105w0w3Iysc034vp2w3zrvhQ005w08&state=")
setTimeout(a.document.getElementsByClassName("van-checkbox")[0].click(),delay*10)
a.document.getElementsByClassName("van-button__content")[1].click()
b = a.document.querySelectorAll("input")
b[0].value = userName
b[1].value = userId
b[2].value = userPhone
a.document.getElementsByClassName("calendar_day calendr_day_checked")
后端尝试
import json
import time
import datedays
import re
def byteHandler(fileName,byteMode):
with open(fileName,'wb') as fb:
fb.write(byteMode)
with open(fileName,'rb') as fb:
return json.load(fb)
def timeHandler(targetDay,targetTime):
oriTime = time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())
target = r"[\d]+:[\d]+:[\d]+"
objectTime = re.sub(target, targetTime, oriTime)
returnTime = time.mktime(time.strptime(objectTime,"%a %b %d %H:%M:%S %Y"))
objectDate = datedays.gettomorrow(targetDay)
returnDate = f"{objectDate.year}-{objectDate.month}-{objectDate.day}"
return returnTime, returnDate
import requests
import time
import json
from utils import byteHandler,timeHandler
class patientInfofake():
dentalorder_name= "oo"
dentalorder_number= "110101195201031218"
dentalorder_phone= "13633612334"
dentalorder_wxname= "wxname"
dentalorder_ip= ""
class patientInfo():
dentalorder_name= ""
dentalorder_number= ""
dentalorder_phone= ""
dentalorder_wxname= ""
dentalorder_ip= ""
def getValidDoctorId(objectDate):
# https://xyymzyy.buaa.edu.cn/api/user/getValidDentalDatePlus?date=2023-2-28
url = f"https://xyymzyy.buaa.edu.cn/api/user/getValidDentalDoctorByDate?date={objectDate}"
fileName = 'ValidDoctorId.json'
res = requests.get(url=url)
responseJson = byteHandler(fileName,res.content)
res.close()
return responseJson['o'][-1]['userDetailId']
def getValidDentalId(objectDate,doctorId):
url = f"https://xyymzyy.buaa.edu.cn/api/user/getValidDentalByDateAndDoctor?date={objectDate}&doctor_id={doctorId}"
fileName = 'ValidDentalId.json'
res = requests.get(url=url)
responseJson = byteHandler(fileName,res.content)
dentalId = responseJson["o"][-1]["dentalId"]
res.close()
return dentalId
def dentist(dental_id,patientInfo):
# https://xyymzyy.buaa.edu.cn/patient/dentalOrder?code=041Gmo0w3X1Zb03Bq82w3IAOjr0Gmo0u&state=
url = "https://xyymzyy.buaa.edu.cn/api/user/createDentalOrder"
data = json.dumps({
"dental_id": dental_id,
"dentalorder_name": patientInfo.dentalorder_name,
"dentalorder_number": patientInfo.dentalorder_number,
"dentalorder_phone": patientInfo.dentalorder_phone,
"dentalorder_wxname": patientInfo.dentalorder_wxname,
"dentalorder_ip": patientInfo.dentalorder_ip
})
with open ("headers.json","r") as fr:
headers = json.load(fr)
res = requests.post(url=url, data=data, headers=headers)
print(res.request.body)
responseJson = byteHandler('return.json',res.content)
res.close()
return responseJson['status']
if __name__ == "__main__":
objectTime, objectDate = timeHandler(1,"12:00:00")
user = patientInfofake()
# user = patientInfo()
doctorId = getValidDoctorId(objectDate)
while(objectTime<=time.time()):
dental_id = getValidDentalId(objectDate,doctorId)
if dentist(dental_id,user) != -1:
print("success!!!")
break
print(f"\n{time.asctime(time.localtime())}: try doctor_id {doctorId} for time {dental_id} fail ToT\n")