好像题目链接有时会更新,如果链接挂了,可以去对应的平台找到相应题目。
题目:bugku-秋名山老司机
我的程序:
import requests
import re
s=requests.Session()
r=s.get("http://123.206.87.240:8002/qiumingshan/")
content=r.text
# print(r.text)
result=re.findall('<div>(.*?)\=\?;</div>',content,re.S)
# print(result)
# print(type(result))
for i in result:
res=eval(i)
# print(res)
data={
'value':res
}
r2=s.post("http://123.206.87.240:8002/qiumingshan/",data=data)
print(r2.text)
网上的脚本一:
import requests
import re
url='http://123.206.87.240:8002/qiumingshan/'
r=requests.session()
requestpage = r.get(url)
# print(requestpage.text)
ans=re.findall('<div>(.*?)=?;</div>',requestpage.text)#获取表达式
ans="".join(ans)#列表转为字符串
# print(ans)
ans=ans[:-2]#去掉最后的=?
post=eval(ans)#计算表达式的值
data={'value':post}#构造post的data部分
fl=r.post(url,data=data)
print(fl.text)
这里他的=?忘记使用转义符,使得匹配到的式子多出两个字符,他使用ans[:-2]去掉了多余的字符。这里把列表转换成字符串 他使用join()函数,
用法:例如ex.join(str)
参数说明
ex:分隔符。可以为空(如本题)
str:要连接的元素序列、字符串、元组、字典
上面的语法即:以ex作为分隔符,将str所有的元素合并成一个新的字符串
返回值:返回一个以分隔符ex连接各个元素后生成的字符