zoukankan      html  css  js  c++  java
  • Python Challenge 第四题

    这一题没有显示提示语,仅仅有一幅图片,图片也看不出什么名堂,于是直接查看源代码,源代码例如以下:
    <html>
    <head>
      <title>follow the chain</title>
      <link rel="stylesheet" type="text/css" href="../style.css">
    </head>
    <body>
    <!-- urllib may help. DON'T TRY ALL NOTHINGS, since it will never 
    end. 400 times is more than enough. -->
    <center>
    <a href="linkedlist.php?nothing=12345"><img src="chainsaw.jpg" border="0"/></a>
    <br><br><font color="gold"></center>
    Solutions to previous levels: <a href="http://wiki.pythonchallenge.com/"/>Python Challenge wiki</a>.
    <br><br>
    IRC: irc.freenode.net #pythonchallenge
    </body>
    </html>
    
    

    能够看到,解题须要用到urllib,提示我们不要去一个一个地尝试noting,由于这数量特别多,远远不止四百次(终于证明事实上不须要四百次,一百二十多次即可了),既然这么多,那肯定不能手动去试了,可是能够让计算机自己主动去訪问提取nothing值。点击图片,我们便获得了第一个nothing值44827,再改动URL,获得下一个nothing值,发现没个nothing页面最后都会有这句话“and the next nothing is ”后面接着一个数字(当然,由于URL的须要,我们把它理解为一个字符串,刚開始投机取巧觉得这数字是五位的,后来出现四位的,又觉得是四位或五位的,再后来有三位的。。。于是还是老老实实写关于提取最后不限位数数字字符的代码),从而猜想,那个能够获得答案相关信息的页面内容会与这些均不同,能够通过内容最后是否是数字字符来推断,最后代码例如以下:

    import urllib.request
    name='http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing='
    finalNum='44827'#nothing's number string
    while 1:
        f=urllib.request.urlopen(name+x)
        content=f.read().decode('utf-8')
        print(content)        #输出页面内容,方便查看到最后的解题信息
        finalNum=[]
        content=list(content)
        content.reverse()
        for i in content:     #提出页面内容最后的数字字符
            if i.isdigit():
                finalNum.append(i)
            else:
                break
        finalNum.reverse()
        finalNum=''.join(finalNum)
        if not finalNum:      #推断页面最后内容是不是数字字符,假设不是,则跳出循环
            break

    当循环结束时候的那个页面信息是“Yes. Divide by two and keep going”,上一个页面为“and the next nothing is 16044”,于是改动finalNum的值为‘8022’,又一次启动程序,最后获得答案

  • 相关阅读:
    ElementUI中弹窗使用textarea原样显示SpringBoot后台带换行的StringBuilder内容
    Node搭建静态资源服务器时后缀名与响应头映射关系的Json文件
    Nodejs中搭建一个静态Web服务器,通过读取文件获取响应类型
    JS中怎样比较两个时分格式的时间大小
    ElementUI中对el-table的某一列的时间进行格式化
    MongoDb在Windows上的下载安装以及可视化工具的下载与使用
    Express中使用ejs新建项目以及ejs中实现传参、局部视图include、循环列表数据的使用
    FFmpeg-20160506-snapshot-bin
    FFmpeg-20160428-snapshot-bin
    FFmpeg-20160422-snapshot-bin
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4184744.html
Copyright © 2011-2022 走看看