bugku 秋名山老司机

思路

根据要求,2s内计算出结果即可得到flag,上python

题解

import requests
import re
url="http://123.206.87.240:8002/qiumingshan/"
r=requests.session()
text=r.get(url).text #将get到的数据以文本形式显示出来
cont=re.findall('
(.*?)
',text) #匹配出计算表达式,返回的是列表 cont="".join(cont) #列表转字符串,因为eval()接收的参数类型为string, bytes or code object cont=cont[:-3] #删掉多余的字符 post=eval(cont) #eval()可以把字符串当做有效表达式进行计算 data={'value':post} #构造post数据 ans=r.post(url,data=data) print(ans.text)

新姿势

1、request 中 text、content区别:

  • 返回类型不同,text以Unicode编码返回,而content以bytes型返回

  • 一般情况下text提取出来的可能乱码,content提取出来的一般不会乱码

  • text用于提取文本,content用于提取图片、文件

2、eval()函数,将字符串str当成有效的表达式来求值并返回计算结果
3、列表与字符串相互转换:

  • 列表–>字符串:
    list=['I','love','you'] 
    str=" ".join(list)
  • 字符串–>列表:
str="I love you"
list=str.split() #参数缺省时默认以空格分割

你可能感兴趣的:(bugku,web)