Python3 解谜挑战 关卡六

作者: AiFany | 来源:发表于2018-01-29 10:16 被阅读15次
PythonChallenge.png

查看上一关过关方法

关卡六:now there are pairs 成双

6.png

提示
   图片显示一个拉链,和题目意思有关系,算不上明显的线索。依旧查看网页源代码:

tips.png

绿框文字是在拉赞助,和解谜没有任何关系。而红色箭头指向的zip,意为压缩包,也是拉链,这应该是一个线索。将浏览器地址的html改为zip,页面跳出:

zip.png
开始解谜:
  python3:
  此处需要用到python中用于解压缩的包zipfile
import zipfile
z = zipfile.ZipFile(r'C:\Users\GWT9\Desktop\channel.zip')
for filename in z.namelist():
    print(filename)

运行结果如下:

txt.png

文件最后有个名为readme.txt的文件,查看一下内容:

import zipfile
z = zipfile.ZipFile(r'C:\Users\GWT9\Desktop\channel.zip')
z.extractall(r'C:\Users\GWT9\Desktop\file')#将文件解压缩到file文件夹下面
mess = open(r'C:\Users\GWT9\Desktop\file\readme.txt')#读取readme文件
for jj in mess.readlines():#将txt的内容打印出
    print(jj)

运行结果:

hint.png

得到线索:(1) 从90052.txt文件开始 (2)答案就在这个zip文件中。
  下面给出程序:

start = '90052'
#按照文件给的线索寻找
import re
filepath = r'C:\Users\GWT9\Desktop\file'
sign = 1
while 1:
    mess  = open(r'%s\%s.txt'%(filepath, start))
    for jj in mess.readlines():
        number = re.match('Next nothing is ([0-9]+)', jj)
        try:
            start = number.group()[16:]
        except AttributeError:
            print('文件%s.txt 内容:%s'%(start, jj))
            sign = 0
    if sign == 0:
        break

上述程序输出:文件46145.txt 内容:Collect the comments.
  Collect the comments:zipfile.getinfo对象包含属性comment。例如:

import zipfile
z = zipfile.ZipFile(r'C:\Users\GWT9\Desktop\channel.zip')
print(z.getinfo('90052.txt').comment)
#程序输出:'*'

Collect的顺序应该就是上面程序中文件打开的顺序。最后的综合程序如下:

import zipfile
z = zipfile.ZipFile(r'C:\Users\GWT9\Desktop\channel.zip')
z.extractall(r'C:\Users\GWT9\Desktop\file')#将文件解压缩到file文件夹下面
start = '90052'
#按照文件给的线索寻找
import re
filepath = r'C:\Users\GWT9\Desktop\file'
sign = 1
numlist = []#收集comment的列表
while 1:
    mess  = open(r'%s\%s.txt'%(filepath, start))
    numlist.append(str(z.getinfo('%s.txt'%start).comment)[2])#因为此处输出的为二进制,只收集comment的第二个字符
    for jj in mess.readlines():
        number = re.match('Next nothing is ([0-9]+)', jj)#如果匹配上,则从第16位开始是数字
        try:
            start = number.group()[16:]#解去16位至最后的
        except AttributeError:
            sign = 0
    if sign == 0:
        break
print(numlist)
#输出的结果:['*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '\\', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*',
 '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '\\', '*', '*', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '*', '*', 
'\\', '*', '*', ' ', ' ', ' ', 'O', 'O', ' ', ' ', ' ', ' ', 'O', 'O', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', 'Y', 'Y', 'Y', 'Y', ' ', ' ', ' ', ' ', 'G', 'G', ' ', ' ', ' ', ' ', 'G', 'G', ' ', ' ', 'E', 'E', 'E', 'E', 'E', 'E', ' ', 'N', 'N', ' ', ' ', ' ', ' ', ' ', ' ', 'N', 'N', ' ', ' ', '*', '*', '\\', '*', '*', ' ', ' ', ' ', 'O', 'O', ' ', ' ', ' ', ' ', 'O', 'O', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', 'Y',
 'Y', 'Y', 'Y', 'Y', 'Y', ' ', ' ', ' ', 'G', 'G', ' ', ' ', ' ', 'G', 'G', ' ', ' ', ' ', 'E', 'E', 'E', 'E', 'E', 'E', ' ', ' ', 'N', 'N', ' ', ' ', ' ', ' ', 'N', 'N', ' ', ' ', ' ', '*', '*', '\\', '*', '*', ' ', ' ', ' ', 'O', 'O', ' ', ' ', ' ', ' ', 'O', 'O', ' ', 'X', 'X', 'X', ' ', ' ', 'X', 'X', 'X', ' ', 'Y', 'Y', 'Y', ' ', ' ', ' ', 'Y', 'Y', ' ', ' ', 'G', 'G', ' ', 'G', 'G', ' ', ' ', ' ', ' ', ' ', 'E', 'E', ' ', ' ', ' ', ' ', ' ', 
' ', ' ', 'N', 'N', ' ', ' ', 'N', 'N', ' ', ' ', ' ', ' ', '*', '*', '\\', '*', '*', ' ', ' ', ' ', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', ' ', 'X', 'X', ' ', ' ', ' ', ' ', 'X', 'X', ' ', 'Y', 'Y', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'G', 'G', 'G', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'E', 'E', 'E', 'E', 'E', ' ', ' ', ' ', ' ', ' ', 'N', 'N', 'N', 'N', ' ', ' ', ' ', ' ', ' ', '*', '*', '\\', '*', '*', ' ', ' ', ' ', 'O', 'O', 'O', 'O', 'O', 'O',
 'O', 'O', ' ', 'X', 'X', ' ', ' ', ' ', ' ', 'X', 'X', ' ', 'Y', 'Y', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'G', 'G', 'G', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'E', 'E', 'E', 'E', 'E', ' ', ' ', ' ', ' ', ' ', ' ', 'N', 'N', ' ', ' ', ' ', ' ', ' ', ' ', '*', '*', '\\', '*', '*', ' ', ' ', ' ', 'O', 'O', ' ', ' ', ' ', ' ', 'O', 'O', ' ', 'X', 'X', 'X', ' ', ' ', 'X', 'X', 'X', ' ', 'Y', 'Y', 'Y', ' ', ' ', ' ', 'Y', 'Y', ' ', ' ', 'G', 'G', ' ', 'G', 'G',
 ' ', ' ', ' ', ' ', ' ', 'E', 'E', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'N', 'N', ' ', ' ', ' ', ' ', ' ', ' ', '*', '*', '\\', '*', '*', ' ', ' ', ' ', 'O', 'O', ' ', ' ', ' ', ' ', 'O', 'O', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', ' ', ' ', ' ', 'G', 'G', ' ', ' ', ' ', 'G', 'G', ' ', ' ', ' ', 'E', 'E', 'E', 'E', 'E', 'E', ' ', ' ', ' ', ' ', ' ', 'N', 'N', ' ', ' ', ' ', ' ', ' ', ' ', '*', '*', '\\', '*', 
'*', ' ', ' ', ' ', 'O', 'O', ' ', ' ', ' ', ' ', 'O', 'O', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', 'Y', 'Y', 'Y', 'Y', ' ', ' ', ' ', ' ', 'G', 'G', ' ', ' ', ' ', ' ', 'G', 'G', ' ', ' ', 'E', 'E', 'E', 'E', 'E', 'E', ' ', ' ', ' ', ' ', ' ', 'N', 'N', ' ', ' ', ' ', ' ', ' ', ' ', '*', '*', '\\', '*', '*', ' ', ' ',
 ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '*', '*', '\\', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*',
 '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '\\', ' ', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '\\']

从输出的结果很难看出线索,下面对输出进行格式化:

#格式化输出
strdu = []
single = []
for ii in numlist:
    if ii != '\\':#每一行输出
        single.append(ii)
    else:
        strdu.append(single)
        single = []
for hh in strdu:
    print(hh)
#结果:
['*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*']
['*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*']
['*', '*', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '*', '*']
['*', '*', ' ', ' ', ' ', 'O', 'O', ' ', ' ', ' ', ' ', 'O', 'O', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', 'Y', 'Y', 'Y', 'Y', ' ', ' ', ' ', ' ', 'G', 'G', ' ', ' ', ' ', ' ', 'G', 'G', ' ', ' ', 'E', 'E', 'E', 'E', 'E', 'E', ' ', 'N', 'N', ' ', ' ', ' ', ' ', ' ', ' ', 'N', 'N', ' ', ' ', '*', '*']
['*', '*', ' ', ' ', ' ', 'O', 'O', ' ', ' ', ' ', ' ', 'O', 'O', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', ' ', ' ', ' ', 'G', 'G', ' ', ' ', ' ', 'G', 'G', ' ', ' ', ' ', 'E', 'E', 'E', 'E', 'E', 'E', ' ', ' ', 'N', 'N', ' ', ' ', ' ', ' ', 'N', 'N', ' ', ' ', ' ', '*', '*']
['*', '*', ' ', ' ', ' ', 'O', 'O', ' ', ' ', ' ', ' ', 'O', 'O', ' ', 'X', 'X', 'X', ' ', ' ', 'X', 'X', 'X', ' ', 'Y', 'Y', 'Y', ' ', ' ', ' ', 'Y', 'Y', ' ', ' ', 'G', 'G', ' ', 'G', 'G', ' ', ' ', ' ', ' ', ' ', 'E', 'E', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'N', 'N', ' ', ' ', 'N', 'N', ' ', ' ', ' ', ' ', '*', '*']
['*', '*', ' ', ' ', ' ', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', ' ', 'X', 'X', ' ', ' ', ' ', ' ', 'X', 'X', ' ', 'Y', 'Y', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'G', 'G', 'G', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'E', 'E', 'E', 'E', 'E', ' ', ' ', ' ', ' ', ' ', 'N', 'N', 'N', 'N', ' ', ' ', ' ', ' ', ' ', '*', '*']
['*', '*', ' ', ' ', ' ', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', ' ', 'X', 'X', ' ', ' ', ' ', ' ', 'X', 'X', ' ', 'Y', 'Y', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'G', 'G', 'G', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'E', 'E', 'E', 'E', 'E', ' ', ' ', ' ', ' ', ' ', ' ', 'N', 'N', ' ', ' ', ' ', ' ', ' ', ' ', '*', '*']
['*', '*', ' ', ' ', ' ', 'O', 'O', ' ', ' ', ' ', ' ', 'O', 'O', ' ', 'X', 'X', 'X', ' ', ' ', 'X', 'X', 'X', ' ', 'Y', 'Y', 'Y', ' ', ' ', ' ', 'Y', 'Y', ' ', ' ', 'G', 'G', ' ', 'G', 'G', ' ', ' ', ' ', ' ', ' ', 'E', 'E', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 'N', 'N', ' ', ' ', ' ', ' ', ' ', ' ', '*', '*']
['*', '*', ' ', ' ', ' ', 'O', 'O', ' ', ' ', ' ', ' ', 'O', 'O', ' ', ' ', 'X', 'X', 'X', 'X', 'X', 'X', ' ', ' ', ' ', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', ' ', ' ', ' ', 'G', 'G', ' ', ' ', ' ', 'G', 'G', ' ', ' ', ' ', 'E', 'E', 'E', 'E', 'E', 'E', ' ', ' ', ' ', ' ', ' ', 'N', 'N', ' ', ' ', ' ', ' ', ' ', ' ', '*', '*']
['*', '*', ' ', ' ', ' ', 'O', 'O', ' ', ' ', ' ', ' ', 'O', 'O', ' ', ' ', ' ', ' ', 'X', 'X', ' ', ' ', ' ', ' ', ' ', ' ', 'Y', 'Y', 'Y', 'Y', ' ', ' ', ' ', ' ', 'G', 'G', ' ', ' ', ' ', ' ', 'G', 'G', ' ', ' ', 'E', 'E', 'E', 'E', 'E', 'E', ' ', ' ', ' ', ' ', ' ', 'N', 'N', ' ', ' ', ' ', ' ', ' ', ' ', '*', '*']
['*', '*', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '*', '*']
['*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*']
[' ', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*']

好像可以看出字母,下面对程序稍加改动:

#格式化输出
strdu = []
single = []
for ii in numlist:
    if ii != '\\':#每一行输出
        single.append(ii)
    else:
        strdu.append(''.join(single))#每一行合并在输出
        single = []
for hh in strdu:
    print(hh)

最终的程序运行结果:

hockey.png

  上述显示的字母为HOCKEY,将浏览器地址栏中的channel.html改为hockey.html,页面并没有转到第七关,而是出现下面的页面:

air.png

  翻译过来好像是一个谜语:它在空气里,字母看仔细。再次观察上面的图片,发现构成hockey的字母分别是O,X,Y,G,E,N。oxygen是氧气,符合前一句,应该就是谜底。将浏览器地址栏中的hockey.html改为oxygen.html,进入第七关

不定期更新,欢迎留言,敬请关注!!!

相关文章

  • Python3 解谜挑战 关卡六

    查看上一关过关方法 关卡六:now there are pairs 成双 提示:   图片显示一个拉链,和题...

  • Python3 解谜挑战 关卡二

    关卡二:OCR 光学字符识别   我们先将网页的源码打印出来,或者直接查看网页的源代码,看看线索究竟在哪里。 在输...

  • Python3 解谜挑战 关卡0

      PythonChallenge是一个利用Python进行解谜闯关的网站。本系列文章将不定期给出每一个关卡的解题...

  • Python3 解谜挑战 关卡一

    关卡一:What about making trans? 转换会怎样 粉色字符串转换后的结果:i hope you...

  • Python3 解谜挑战 关卡三

    关卡三:re 正则表达式 开始解谜:  python3解答   依然是从源码中寻找线索,从上面的程序运行结果可以发...

  • Python3 解谜挑战 关卡五

    查看上一关过关方法 关卡五:peak hell Pickle 提示:   图片中的文字为:发音。此处线索...

  • Python3 解谜挑战 关卡七

    查看上一关过关方法 关卡七:smarty 足智 提示:   图片当中包含一道灰黑色条理,网页源代码也没任何线索...

  • Python3 解谜挑战 关卡四

    关卡四:follow the chain 循迹前行 提示:   此题的题目“follow the chain”,图...

  • 几款好玩的手机游戏,推荐给脑洞大开的你

    迷失岛 传统点触类经典解谜,极度烧脑的游戏解谜关卡,神秘又美丽的画面,南瓜先生大冒险团队最新力作,评分超高,最值得...

  • [Unity] Unity中的时间控制

    关卡创建 本文会探讨如何在Unity中使用时间控制进行关卡创建。在探讨之前,可以观看视频了解拥有时间控制玩法的解谜...

网友评论

    本文标题:Python3 解谜挑战 关卡六

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