第6关
这一关挺有意思的, 绕了好几重。 图片上面是一条拉链, Page Source里面有zip的提示。所以这一关会用到zipfile模块。
把URL里的channel换成zip,结果出现这个
yes. find the zip
网上搜一下答案, 原来是要把html改成zip, 再下载zip文件。下载得到的zip文件里有个readme.txt
welcome to my zipped list.
hint1: start from 90052
hint2: answer is inside the zip
90052.txt里面是 Next nothing is 94191, 看来有点像urllib那一关, 不断寻找下一个txt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| import re import zipfile
next_num = '90052' ext = '.txt'
zf = zipfile.ZipFile('channel.zip') pat = re.compile('Next nothing is (\d+)')
while True: text = zf.read(next_num + ext) print text next_num = pat.findall(text) if next_num: next_num = next_num[0] else: break
|
看到最后一个文件的提示 **Collect the comments.** 看来还要把每个文件的comment弄出来。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| import re import zipfile
next_num = '90052' ext = '.txt'
zf = zipfile.ZipFile('channel.zip') pat = re.compile('Next nothing is (\d+)') comment = "" while True: text = zf.read(next_num + ext) zinfo = zf.getinfo(next_num + ext) comment += zinfo.comment print text next_num = pat.findall(text) if next_num: next_num = next_num[0] else: break
print comment
|
打印出来是这个样子的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| ''' **************************************************************** **************************************************************** ** ** ** OO OO XX YYYY GG GG EEEEEE NN NN ** ** OO OO XXXXXX YYYYYY GG GG EEEEEE NN NN ** ** OO OO XXX XXX YYY YY GG GG EE NN NN ** ** OOOOOOOO XX XX YY GGG EEEEE NNNN ** ** OOOOOOOO XX XX YY GGG EEEEE NN ** ** OO OO XXX XXX YYY YY GG GG EE NN ** ** OO OO XXXXXX YYYYYY GG GG EEEEEE NN ** ** OO OO XX YYYY GG GG EEEEEE NN ** ** ** **************************************************************** ************************************************************** '''
|
好像就是这个HOCKEY了, 但是 http://www.pythonchallenge.com/pc/def/hockey.html 这里只有一句话
it’s in the air. look at the letters.
原来组成HOCKEY的字母才是答案——oxygen(氧,in the air).