zoukankan      html  css  js  c++  java
  • Python Challenge 第三关

    进入第三关,还是一张图加一句话:One small letter, surrounded by EXACTLY three big bodyguards on each of its sides. 图画的是一支小蜡烛两旁各是三支大蜡烛。初次之外没啥信息了,还是和之前一样,右键,查看源代码。

    果然,代码底下又有一个很长的注释,首先用第二关写的代码把页面提取出来:

    def getHtmlPage(url):
        return urllib2.urlopen(urllib2.Request(url)).read()

    然后用这则表达式把这段注释提取出来:

    url = 'http://www.pythonchallenge.com/pc/def/equality.html'
    page = getHtmlPage(url)
    rstList = re.findall('<!--s+(.*)s+-->', page, re.S)
    ss = rstList[0]

    接着就是处理这一段字符串了。三个大写字母加一个小写字母加三个大写字母,很明显用正则表达式:

    def getSmallLetters(srcStr):
        rstList = re.findall('[A-Z]{3}([a-z])[A-Z]{3}', srcStr)
        return ''.join(rstList)

    但是得到的结果却懵了:
    jfeiauzroivgzbmpszazlutnwsdofbiwqdjbzshfrblqgsbydajygcbjwggtdfjeobcmdlzxajvitecgpkcfwqbvkoietpiijanvqjjgtcpadjkgcluaidgumcdskunujfcj

    fmbzkzsasdxsqqqlaeisjefjfdaoljaywxjthqjknednxnsahxqedoeqsdcmltcsnwakjxtytaalhgabekfmyimwrkffydghiunlriwgkuzqljjbsxguytfsatejmdwkf

    bzifdknpcqimvehxujszbuyutsompijjojspbwlroefiwmrsjstdjhfwxhnthsoosmoqtufoxvpvpjkgiaqgfrhufxxdnjiwtfqusbkeakunjgknpibklgjounivhgxsn

    ekxgrrbslpuaouvhzbilbirmqqxtktgcnkdljoasnexwtgvwjegurnksokjtrovpmykzgeolwysfidemflmkwmj

    难不成又是加密的字符串?可是根据提示和这个结果,没有任何解密的头绪。这时候再去看源代码里面的注释,又想起提示中有个大写单词 EXACTLY,发现源代码中有很多大于三个大写字母中间夹着一个小写字母,打开一个正则表达式在线测试网站,发现之前写的把这些也都匹配进来了,应该只匹配前后仅有三个大写字母的小写字母,于是修改了下正则表达式:

    def getSmallLetters(srcStr):
        rstList = re.findall('[^A-Z][A-Z]{3}([a-z])[A-Z]{3}[^A-Z]', srcStr)
        return ''.join(rstList)

    这次结果对了,得到了:linkedlist

    于是把 url 中的 equlity 换成 linkedlist,出来个页面,只有一句话:linkedlist.php。开始以为又做错了,试来试去,将 url 中的 linkedlist.html 换成 linkedlist.php,居然成功进入了第四关:http://www.pythonchallenge.com/pc/def/linkedlist.php

  • 相关阅读:
    OpenStack 多节点纳管 vCenter 5.5
    OpenStack 多节点纳管 vCenter 5.5
    java.utils.UUID类介绍
    BeanUtils工具类
    Request笔记
    JavaEE_XMind总结
    JavaSE_XMind总结
    完成页面的定时跳转
    使用jsp完成商品列表的动态显示
    Respone笔记
  • 原文地址:https://www.cnblogs.com/dukeleo/p/3458924.html
Copyright © 2011-2022 走看看