美文网首页
爬虫游戏第二关

爬虫游戏第二关

作者: pkxutao | 来源:发表于2017-12-27 22:07 被阅读12次

接上一篇文章,我们来到第二关首页,网址:http://www.heibanke.com/lesson/crawler_ex01/
页面长这样

image.png

看起来像是要破解账号密码,没有头绪,F12看看html结构


image.png

可以看到,主要内容就是一个form表单,点击Sources看看源代码,关键代码就是这个表单

<form method="post" action="">
    <input type='hidden' name='csrfmiddlewaretoken' value='VUJcv7BVRdlmCbmxnqUIWDuxSYw4hD4i' />
    <div class="form-group">
        <label>昵称:(随便输入字符)</label>
        <input class="form-control" type="text" name="username"/>
    </div>
    <div class="form-group">
        <label>密码:(30以内的数字,猜对它就能过关)</label>
        <input class="form-control" id="id_password" name="password" type="password" />
    </div>
    <div class="form-group">
        <input class="btn btn-primary" id="id_submit" type="submit" value="提交">
    </div>
</form>

可以看到,action="",说明这个表单是本页面处理,但是又找不到提交按钮对应的点击事件,随便填个数据点击提交按钮看看http请求,可以看到表单以post的方式提交到了本页面,参数如下图所示

点击提交按钮的post请求
界面提示密码错误
image.png
看到这里就很明显了,这是一个接口,地址是 http://www.heibanke.com/lesson/crawler_ex01/,参数有三个,csrfmiddlewaretoken username password,通过页面提示和form表单代码可以得知:
csrfmiddlewaretoken:写死的,值为VUJcv7BVRdlmCbmxnqUIWDuxSYw4hD4i,
username:用户名,随便编一个即可
password:关键参数,本关目的就是让你猜测password的值

清楚了这些就好办了,循环请求接口,每次让password增大1,直到正确为止,代码:

from urllib import request
from urllib import parse
from bs4 import BeautifulSoup

def get_page(url, params):
    print('get url %s' % url)
    data = parse.urlencode(params).encode('utf-8')
    req  = request.Request(url, data)
    page = request.urlopen(req).read()
    page = page.decode('utf-8')
    return page
count = 0
url = "http://www.heibanke.com/lesson/crawler_ex01/"
token = 'VUJcv7BVRdlmCbmxnqUIWDuxSYw4hD4i'
username = 'pkxutao'
password = -1
# 构造post参数
data = {
    'csrfmiddlewaretoken': token,
    'username': 'pkxutao',
    'password': password
}
result = '您输入的密码错误, 请重新输入'
while result == '您输入的密码错误, 请重新输入':
    count += 1
    password += 1
    data['password'] = password
    print('第%d次尝试,参数:%d' % (count, password))
    result = get_page(url, data)
    soup = BeautifulSoup(result, "html.parser")
    # 解析h3元素
    h3 = soup.find_all("h3")[0]
    result = soup.find_all("h3")[0].text
print('成功,username:%s, password:%d' % (username, password))

结果


部分结果截图

在页面验证,用户名随便输一个,密码输入16,结果如图


image.png
搞定收工

相关文章

  • 爬虫游戏第二关

    接上一篇文章,我们来到第二关首页,网址:http://www.heibanke.com/lesson/crawle...

  • XSS 攻击演练小游戏及解密

    XSS 攻击演练小游戏 地址 https://xss-game.appspot.com 第一关 第二关 第三关 第...

  • 羊了个羊第二关攻略

    羊了个羊这款游戏最近爆火,但是好多人都说第二关根本过不了?第二关究竟能不能过,小编这就来给大家带来第二关的通关方法...

  • Tksm有限公司(5)游戏世界(2)

    五人赤着脚通过了绿色的门,来到游戏的第二关。。。 “恭喜你们!你们通过了游戏的第一关,来到第二关的房间。接下来先请...

  • Python 爬虫闯关(第二关)

    在上次第一关爬虫闯关成功后,我们会得到第二关的地址:http://www.heibanke.com/lesson/...

  • 2018/3/28 读书笔记

    《通关!游戏设计之道》 Scott Rogers 第二关:创意 1. 明确玩家想要什么:确定游戏的受众是谁、创意面...

  • 黑客榜第三期

    第一关:黑客游戏第三期1、直接给了第二关的地址、但文件名加密了、 第二关:http://www.cn-hack.c...

  • 睡前呓语2

    睡前呓语2 今天玩游戏,玩到身心疲惫。 旺达与巨像打到了。倒数第二关了。没想到倒数第二关难度还是挺高的。就是那个活...

  • 羊了个羊

    最近羊了个羊的游戏好火,我很多同事都在玩,我听他们说第二关很难通过,有的同事为了通过第二关玩到凌晨3点。 我开始觉...

  • 黑板课爬虫闯关 - 第二关

    第二关比较简单,只是在密码上一个一个循环即可,直接上代码,注意在传输数据时用到的请求方法是POST,其他的都比较基...

网友评论

      本文标题:爬虫游戏第二关

      本文链接:https://www.haomeiwen.com/subject/otypgxtx.html