思考
这道题按着题目的提示做就可以了,计算一千次。
在写脚本之前,一定要完全理解页面的请求过程。第一次发送get请求,计算get请求的返回数据,post发送计算结果。
post请求后,系统会自动返回带有数字的数据,类似在post发送结果以后又执行了一次get请求。因此,我们在写代码的时候不要再次get请求。
知识点
- 保持请求是同一个会话用session
- re.encoding=“UTF-8”,解决返回的值为乱码
- eval计算一个表达式
payload
import requests,time,re
url = "http://41b70e7c-b4ff-484d-9f46-63deff56ca39.node4.buuoj.cn:81/index.php"
req = requests.session()
getRe = req.get(url)
getRe.encoding = "UTF-8"
reContent = re.findall("[0-9]* [-+*/] [0-9]*",getRe.text)
formula = ''.join(reContent).replace(" ", "")
comResult = eval(formula)
print(comResult)
data = {"answer":comResult}
postRe = req.post(url,data)
postRe.encoding = "UTF-8"
print(postRe.text)
for i in range(1005):
reContent = re.findall("[0-9]* [-+*/] [0-9]*",postRe.text)
formula = ''.join(reContent).replace(" ", "")
comResult = eval(formula)
print(comResult)
data = {"answer":comResult}
postRe = req.post(url,data)
postRe.encoding = "UTF-8"
time.sleep(0.1)
print(postRe.text)