网址:http://ctf5.shiyanbar.com/jia

之后第一步就是刷新一下网页,发现给的公式会变,(废话,要不直接算数不就行了。。。)但是格式不会变。

所以那就暴力一点好了,我们看一下这个网页的html代码。

所以要获取这个页面中公式的内容,然后计算这个公式的值,之后用post的方法,提交这个数据,得到返回页面,就能得到key了。

公式很好过的,用beautifulsoup无脑拿到,soup.form.div.string就可以。

但是之后就陷入了“如何求字符串公式”的值的思考中。。。于是最后决定写个非常不漂亮的代码/。。。傻乎乎的,不过还是做出来了。

import requests
from bs4 import BeautifulSoup url = 'http://ctf5.shiyanbar.com/jia/'
s = requests.session();
html = s.get(url).text;
soup = BeautifulSoup(html,"html.parser")
s1 = list(soup.form.div.string.split(' '))[].split('(')[]
s2 = list(soup.form.div.string.split(' '))[].split(')')[]
sum1 = int(s1)+int(s2) s3 = list(soup.form.div.string.split(' '))[].split('(')[]
s4 = list(soup.form.div.string.split(' '))[].split(')')[]
sum2 = int(s3)-int(s4) s5 = list(soup.form.div.string.split(' '))[].split('(')[]
s6 = list(soup.form.div.string.split(' '))[]
s7 = list(soup.form.div.string.split(' '))[].split(')')[]
sum3= int(s5)+int(s6)-int(s7) s8 = int(list(soup.form.div.string.split(' '))[]) submit = sum1 * sum2 - sum3*s8
print(submit)
post_Content = {'pass_key': submit, 'submit': '%e6%8f%90%e4%ba%a4%e6%9f%a5%e8%af%a2%e5%86%85%e5%ae%b9'} result = s.post(url,data=post_Content).text
print(result)

是的,我用漂亮汤获取元素,然后转化为list,再进行分段的运算(投机取巧,因为公式的格式不会变,只有数字变)最后构造post的内容,pass_key是文本框的,submit后面的是“提交查询内容”的url编码

用session的方式post这两个进去,得到返回页面result的text :

可以看到 key 就在里面了。

搞定(虽然这个方式相当蠢。。。有空得想想怎么解决类似的问题。。。——)

实验吧编程题python的更多相关文章

  1. 实验吧编程题:Hashkill

    原题:6ac66ed89ef9654cf25eb88c21f4ecd0是flag的MD5码,(格式为ctf{XXX_XXXXXXXXXXX_XXXXX})由一个0-1000的数字,下划线,纽约的一个区 ...

  2. 2018春招-美团后台开发方向编程题 (python实现)

    第一题:字符串距离 题目: 给出两个相同长度的由字符 a 和 b 构成的字符串,定义它们的距离为对应位置不同的字符的数量.如串”aab”与串”aba”的距离为 2:串”ba”与串”aa”的距离为 1: ...

  3. 基本编程题 --python

    1.让Python帮你随机选一个饮品吧! import random listC = ['加多宝', '雪碧', '可乐', '勇闯天涯', '椰子汁'] print(random.choices(l ...

  4. 剑指Offer编程题(python)——链表

    1.从尾到头打印链表 #输入一个链表,按链表值从尾到头的顺序返回一个ArrayList.class ListNode: def __init__(self, x): self.val = x self ...

  5. 心理学实验程序编程(python)

    任务一:实现简单的屏幕的颜色之间的切换 import pygame from pygame.locals import * pygame.init() win = pygame.display.set ...

  6. 剑指Offer编程题(python)——二叉树

    1.重建二叉树 """ 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字. 例如输入前序遍历序列{1,2,4 ...

  7. python解无忧公主的数学时间编程题001.py

    python解无忧公主的数学时间编程题001.py """ python解无忧公主的数学时间编程题001.py http://mp.weixin.qq.com/s?__b ...

  8. POJ C程序设计进阶 编程题#5:细菌分组实验

    编程题#5:细菌实验分组 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 有 ...

  9. Python和Java编程题(一)

    今天偶尔看到一个博客有贴了五十个编程题,决定以后两天左右做一道题 题目来源:http://blog.sina.com.cn/s/blog_60fafdda0100wb21.html 1.题目 一个数如 ...

随机推荐

  1. 二、安装桌面——Linux学习笔记

    安装桌面并不是商业化用的,只是为了熟悉Linux文档结构而已. 这个比较简单 1.输入安装桌面命令 # yum -y groups install "GNOME Desktop" ...

  2. JQUERY实现点击INPUT使光标移动到最后或指定位置

    下面本文章给大家简单介绍一下JQUERY实现点击INPUT使光标移动到最后或指定位置例子,希望对各位有帮助,你要知道面对一个 处女座的 需求者, focus()是远远不够的,比如说“我点进去的时候光标 ...

  3. 找出OData service出错根源的小技巧

    SAP的Fiori应用是通过OData和后台交互的.在使用Fiori应用时您可能会遇到这样的错误消息: 这个错误消息没有包含有助于partner或者客户定位问题根源的线索. 下面是如何在后台找出问题根 ...

  4. IOS 应用管理(九宫格) 总结笔记

    1. 开发前的思路 ========================================1> 从mainBundle中加载Plist2> 按照plist中的数据数量先确定各个a ...

  5. HTTP 状态码 301 302

    301 Moved Permanently被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一.如果可能,拥有链接编辑功能的客户端应当自动把请求的地址修改为 ...

  6. 【洛谷2624】[HNOI2008] 明明的烦恼(Python+利用prufer序列结论求解)

    点此看题面 大致题意: 给你某些点的度数,其余点度数任意,让你求有多少种符合条件的无根树. \(prufer\)序列 一道弱化版的题目:[洛谷2290][HNOI2004] 树的计数. 这同样也是一道 ...

  7. 使用ToString方法格式化日期

    实现效果: 关键知识: Environment类的NewLine属性  //用于获取为此环境定义的换行字符串,程序执行过程中方便对字符串进行换行 Environment类的EXIT方法     //用 ...

  8. on-session问题

    .D:\0kecheng\bos\bosv2.0_chapter03.无条件查询. 方法1.@JSON(serialize=false)是注解排除不需要加载的实体类上,找到它的get方法,解决no-s ...

  9. JSON、JSONP、XML的区别

    这两天看jquery手册的时候看到了jsonp.发现手册把jsonp与json放在一起讲解了,所以想写篇文章 梳理一下这三者的关系. jsonp: jsonp是json的一种“使用模式”,可以让网页从 ...

  10. mybais学习记录一——入门程序

    一.传统连接数据库和执行sql的不足 1.数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响 数据库性能. 设想:使用数据库连接池管理数据库连接. 2. ...