python challenge 第六关解法 http://www.pythonchallenge.com
2011-10-12 21:32
447 查看
第六关地址:http://www.pythonchallenge.com/pc/def/channel.html
进到页面后,除了两张图片,别无他物,果断查看网页源代码。
源代码中有这么一句:
<!-- <-- zip -->
好吧,用zip来替换channel试试看先,http://www.pythonchallenge.com/pc/def/zip.html
果然,这张页面虽然存在,不过是一个提示性的作用,页面上只有一句话:
yes. find the zip.
好吧,那么我们回到第六关的源代码,继续查看,源码中的这句话向我们讲明白了,哪些代码是与解题无关的:
<!-- The following has nothing to do with the riddle itself. I just
thought it would be the right point to offer you to donate to the
Python Challenge project. Any amount will be greatly appreciated.
-thesamet
-->
意思是,这句注释语句之后的语句只是为了让人来捐款之类的,与解题无关,忽略之,那么现在有用的代码有哪些呢,看看下面:
<html> <!-- <-- zip -->
<head>
<title>now there are pairs</title>
<link rel="stylesheet" type="text/css" href="../style.css">
</head>
<body>
<center>
<img src="channel.jpg">
源码中基本没有任何的可推敲的地方(刚开始我还对“now there are pairs”这个标题推敲了下,把页面图片<img
alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif"
width="1" height="1"> 中得两段文字用内建zip方法试过,当然,结果可想而知)
那么,我们现在换个思维,zip是什么,英文不好的同学查查 google 翻译,zip有拉链之类的意思,好吧,我们看到,第六关页面中的大图片是条牛仔裤,咦,还有拉链,推敲推敲再说。
盯着这条恶心的牛仔裤一会后,我淫荡的笑了,这拉链不就像个字母 y 么?好吧,试试看再说 -_-
事实是,我又一次失败了,这也是一张存在的页面,但是,它的提示会让你吐血的:
It really looks like a Y, isn't it? now, go back.
果断吐血中……………………………………
好吧,再来,zip还能是什么,当然是 zip 包咯,看看页面上好像就是那张大图片是个链接,把后缀改了试试看先,上只有一句话:
http://www.pythonchallenge.com/pc/def/channel.zip
我勒个去,还真有个压缩包!!!
拿着压缩包,我们最想干嘛呢,当然是解压缩咯,解压看看再说,我察,咋这么多文件呢,打开几个看看,吐……,全是如下类型字符串:
Next nothing is XXX # 注释:XXX代表数字类型的字符串记得第六关前面几关中有个也和这种类似,直接考虑用 正则 呗。
对了,解压后,用os.listdir 大体看了下文件,发现文件夹里面有个 readme.txt文件,里面写着:
welcome to my zipped list.
hint1: start from 90052
hint2: answer is inside the zip
好的,果断写个小脚本运行起来再说:
import re, os
re_match = re.compile(r'Next nothing is (\d+)').match
fname = '90052'
values = []
while 1:
if 'readme' == fname:
当然,其实上面那段脚本写的确实不咋地,不过用来取个答案是够了,我们可以看到,最后会输出文本如下:
Collect the comments.
字面意思是把 comments 集中起来,可是comments我还就只能想到评论之类的意思了。
我解决问题到了这个位置后就没辙了,为啥呢,因为它用到了一个我没用过的模块 zipfile,接下来就需要这个模块的帮助了(真失败,看到zip只能想到内建函数zip,却不知道还有zipfile,功力不够呀),之后如何做,我是Google滴哦,代码如下:
print ''.join(map(lambda i: zipfile.ZipFile('channel.zip').getinfo(i).comment, [i for i in values]))
其中的values是上面的脚本中保存下来查找Collect the comments.所经过的文件名集合。
那么,结果出来咯:
果断打下链接 http://www.pythonchallenge.com/pc/def/hockey.html,可是链接的页面却提示的这么一句话:
it's in the air. look at the letters.
汗,仔细看图片中的 HOCKEY, H 由 O 组成,O 由 X 组成…………
那么,第七关地址是:
http://www.pythonchallenge.com/pc/def/oxygen.html
太耗神了。-_-,我这不就是在做脑筋急转弯么……
上只有一句话:
进到页面后,除了两张图片,别无他物,果断查看网页源代码。
源代码中有这么一句:
<!-- <-- zip -->
好吧,用zip来替换channel试试看先,http://www.pythonchallenge.com/pc/def/zip.html
果然,这张页面虽然存在,不过是一个提示性的作用,页面上只有一句话:
yes. find the zip.
好吧,那么我们回到第六关的源代码,继续查看,源码中的这句话向我们讲明白了,哪些代码是与解题无关的:
<!-- The following has nothing to do with the riddle itself. I just
thought it would be the right point to offer you to donate to the
Python Challenge project. Any amount will be greatly appreciated.
-thesamet
-->
意思是,这句注释语句之后的语句只是为了让人来捐款之类的,与解题无关,忽略之,那么现在有用的代码有哪些呢,看看下面:
<html> <!-- <-- zip -->
<head>
<title>now there are pairs</title>
<link rel="stylesheet" type="text/css" href="../style.css">
</head>
<body>
<center>
<img src="channel.jpg">
源码中基本没有任何的可推敲的地方(刚开始我还对“now there are pairs”这个标题推敲了下,把页面图片<img
alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif"
width="1" height="1"> 中得两段文字用内建zip方法试过,当然,结果可想而知)
那么,我们现在换个思维,zip是什么,英文不好的同学查查 google 翻译,zip有拉链之类的意思,好吧,我们看到,第六关页面中的大图片是条牛仔裤,咦,还有拉链,推敲推敲再说。
盯着这条恶心的牛仔裤一会后,我淫荡的笑了,这拉链不就像个字母 y 么?好吧,试试看再说 -_-
事实是,我又一次失败了,这也是一张存在的页面,但是,它的提示会让你吐血的:
It really looks like a Y, isn't it? now, go back.
果断吐血中……………………………………
好吧,再来,zip还能是什么,当然是 zip 包咯,看看页面上好像就是那张大图片是个链接,把后缀改了试试看先,上只有一句话:
http://www.pythonchallenge.com/pc/def/channel.zip
我勒个去,还真有个压缩包!!!
拿着压缩包,我们最想干嘛呢,当然是解压缩咯,解压看看再说,我察,咋这么多文件呢,打开几个看看,吐……,全是如下类型字符串:
Next nothing is XXX # 注释:XXX代表数字类型的字符串记得第六关前面几关中有个也和这种类似,直接考虑用 正则 呗。
对了,解压后,用os.listdir 大体看了下文件,发现文件夹里面有个 readme.txt文件,里面写着:
welcome to my zipped list.
hint1: start from 90052
hint2: answer is inside the zip
好的,果断写个小脚本运行起来再说:
import re, os
re_match = re.compile(r'Next nothing is (\d+)').match
fname = '90052'
values = []
while 1:
if 'readme' == fname:
print 'Find nothing.'break try: f = open('channel/%s.txt' %fname) s = f.read() f.close() fname = re_match(s).groups()[0] values.append(v) except: print s break
当然,其实上面那段脚本写的确实不咋地,不过用来取个答案是够了,我们可以看到,最后会输出文本如下:
Collect the comments.
字面意思是把 comments 集中起来,可是comments我还就只能想到评论之类的意思了。
我解决问题到了这个位置后就没辙了,为啥呢,因为它用到了一个我没用过的模块 zipfile,接下来就需要这个模块的帮助了(真失败,看到zip只能想到内建函数zip,却不知道还有zipfile,功力不够呀),之后如何做,我是Google滴哦,代码如下:
print ''.join(map(lambda i: zipfile.ZipFile('channel.zip').getinfo(i).comment, [i for i in values]))
其中的values是上面的脚本中保存下来查找Collect the comments.所经过的文件名集合。
那么,结果出来咯:
果断打下链接 http://www.pythonchallenge.com/pc/def/hockey.html,可是链接的页面却提示的这么一句话:
it's in the air. look at the letters.
汗,仔细看图片中的 HOCKEY, H 由 O 组成,O 由 X 组成…………
那么,第七关地址是:
http://www.pythonchallenge.com/pc/def/oxygen.html
太耗神了。-_-,我这不就是在做脑筋急转弯么……
上只有一句话:
try
相关文章推荐
- python challenge 第三关解法 http://www.pythonchallenge.com
- python challenge 第二关最简解法 http://www.pythonchallenge.com
- python challenge 第四关解法 http://www.pythonchallenge.com
- python challenge 第零关解法 http://www.pythonchallenge.com
- python challenge 第五关解法 http://www.pythonchallenge.com
- http://www.pythonchallenge.com/
- http://www.pythonchallenge.com/ 网站题解
- 值得拥有的Python教程:http://www.cnpythoner.com/pythonshop.html
- Python3学习笔记(urllib模块的使用)转http://www.cnblogs.com/Lands-ljk/p/5447127.html
- Getting Started Spidering a Site使用Chilkat(python)练习的一个爬虫(from :http://www.example-code.com)
- Python快速教程 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 怎么能快速地掌握Python?这是和朋友闲聊时谈起
- 禅之道——http://www.pythontip.com/coding/run(python online)
- Python自省(反射)指南 -----转自http://www.cnblogs.com/huxi/archive/2011/01/02/1924317.html
- 大家好,我的博客都转移到了http://www.pythonscientists.com/上面,希望大家能都多多支持
- python--爬取http://www.kuaidaili.com/并保存为xls
- <www.pythonchallenge.com>----Lv2
- python获取网站http://www.weather.com.cn 城市 8-15天天气
- (转)[Python]MySQLdb for Python使用指南/Python的数据库操作【http://www.cnblogs.com/czh-liyu/archive/2008/04/13/1151758.html】
- 推荐大家去博客园看我的博客:http://www.cnblogs.com/bj-xy/点击随笔分类,Python基础学习
- 【Python】django模型models的外键关联使用 Python 2.7.10,django 1.8.6 外键关联:http://www.bubuko.com/infodetail-6183