[Python Challenge通关]第5关 peak hell
第 5 关
挑战地址,点我
问题
pronounce it
分析
页面干干净净,没有任何信息,我们右键查看网页源代码看一下。
<peakhell src="banner.p"/>
</body>
</html><!-- peak hell sounds familiar ? -->
这里有一段提示 peak hell sounds familiar ?
peak hell 和什么的发音相似?
我们还看到有个 peakhell
标签,里面有个 banner.p
,我们打开看下是一堆不规则的文本。
其实 python 中有个 pickle 模块,用来进行对象的序列化和反序列化。
我们尝试把 banner.p
中的内容反序列化试下:
import urllib.request
import pickleurl = "http://www.pythonchallenge.com/pc/def/banner.p"with urllib.request.urlopen(url) as f:print(pickle.load(f))
输出内容:
[[(' ', 95)], [(' ', 14), ('#', 5), (' ', 70), ('#', 5), (' ', 1)], ...省略
可以发现反序列化后,这是一个二维数组,我们把输出的格式调整一下:
import urllib.request
import pickleurl = "http://www.pythonchallenge.com/pc/def/banner.p"with urllib.request.urlopen(url) as f:result = pickle.load(f)for r in result:print(r)
输出内容:
[(' ', 95)]
[(' ', 14), ('#', 5), (' ', 70), ('#', 5), (' ', 1)]
[(' ', 15), ('#', 4), (' ', 71), ('#', 4), (' ', 1)]
...省略
感觉毫无头绪… 仔细找下规律,发现每一行的数字之和都是 95,而且里面每一个元组由两部分组成,一个字符(空格或者#),一个数字,比如:(’ ‘, 14), (’#’, 5)。可以联想一下,这是一个矩阵,元组中的数字代表前面的字符重复次数,每一行都有95个字符。我们按照这个猜想试一下,看看会有什么效果。
import urllib.request
import pickleurl = "http://www.pythonchallenge.com/pc/def/banner.p"with urllib.request.urlopen(url) as f:result = pickle.load(f)for r in result:for c in r:for i in range(c[1]):print(c[0], end="")print()
输出内容:
##### ######### ######## ######## ######## ######## ######## ######## ####### #### ### ### ##### ### ##### ### ### ####### ## #### ####### ## ### #### ####### #### ####### ### ### ####### ### ##### #### ### #### ##### #### ##### #### ### ### ####### #### #### ### ### #### #### #### #### ### #### ####### #### #### ### #### #### #### #### ### ### ####
#### #### #### ## ### #### #### #### #### #### ### ####
#### #### #### ########## #### #### #### #### ############## ####
#### #### #### ### #### #### #### #### #### #### ####
#### #### #### #### ### #### #### #### #### #### ####### #### #### #### ### #### #### #### #### ### ####### ## #### #### ### #### #### #### #### #### ### ## ####### ## #### #### ########### #### #### #### #### ### ## ####### ###### ##### ## #### ###### ########### ##### ### ######
这些空格和#最终组成了一个单词 channel
,这应该就是下一关的入口了http://www.pythonchallenge.com/pc/def/channel.html。
参考资源:
- 官方文档pickle模块
[Python Challenge通关]第5关 peak hell相关推荐
- odd在python_[Python Challenge通关]第11关 odd even
cave 挑战地址,点我 分析 页面上是一张模糊的图片,提示信息只有这一关的主题 odd even. 仔细看图片,上面有一些重影,考虑应该是需要分离出奇数和偶数像素. 奇数和偶数像素怎么定义?现在有两 ...
- [Python Challenge通关]第12关 dealing evil
挑战地址,点我 分析 页面上的图片像有明显的行间隔,安装上一关的方法尝试分割,没有什么结果. 搜索了一下,图片的主题是分牌,当前图片的 url 是 http://www.pythonchallenge ...
- python第七关_[Python Challenge通关]第7关 smarty
挑战地址,点我 分析 图片中间有一条灰色带,就像打了马赛克,右键查看网页源代码也没有任何提示信息. 那应该需要处理这条灰色的马赛克了,python 标准库中并没有处理图片的,需要用到第三方图像处理模块 ...
- Python Challenge -mission12 第12关dealing evil
http://www.pythonchallenge.com/pc/return/evil.html 刚进入就一个大大的登陆框整懵逼了,呵呵,试试了之前解密的 huge file,一次性进入,看来以后 ...
- Python Challenge全解(持续更新中)
有趣的Python Challenge编程游戏闯关攻略一(0-4关) 有趣的Python Challenge编程解谜游戏攻略二(5-9关) 有趣的Python Challenge编程解谜游戏第10关 ...
- python challenge 0-6关 攻略
在逛北邮人论坛python版时看到暖神推荐的python challenge这个编程通关小游戏,挺有意思的,还能用来练python.一直觉的自己会的太少,但是又不知道该从哪补起,该看些什么.这个编程小 ...
- 有趣的Python Challenge编程解谜游戏攻略二(5-9关)
**有趣的Python Challenge编程解谜游戏攻略二(5-9关)** 介绍 游戏介绍 0-4关攻略 写在前面 关卡 第5关 第6关 第7关 第8关 第9关 链接总结 第10关预告 介绍 游戏介 ...
- Python Challenge 第 2 关攻略:ocr
Python Challenge 第 2 关攻略:ocr 题目地址 http://www.pythonchallenge.com/pc/def/ocr.html 题目内容 recognize the ...
- (转)一个古老的编程游戏:Python Challenge全通攻略
为什么80%的码农都做不了架构师?>>> Python Challenge是一个网页闯关游戏,通过一些提示找出下一关的网页地址.与众不同的是,它是专门为程序员设计的,因为大多数 ...
最新文章
- 完善的仿京东电商开源项目
- 多路隔离输出的车载辅助电源设计
- python单例_python 单例模式
- java中的jsonjar_java中使用json之相关jar包介绍
- 核心频率个加速频率_仅少数Ryzen 9 3900X能摸到官方最大加速频率,其他处理器也有这问题...
- 可变形卷积神经网络 | Deformable Network
- apache开源项目--HttpComponents
- oracle 10g for linux
- 避免uicollection view被错误的移动
- three 查看版本号
- CSDN 勤学会 —— 和优秀的人一起学习进步
- 怎么设置日程提醒时间
- 如何进行英文文献检索
- 【LeetCode学习计划】《算法-入门-C++》第13天 位运算
- 数据治理之主数据管理MDM
- 自制MyEclipse豆沙绿主题
- 【用matplotlib,wordcloud和pyecharts分析三国的分词,词频,词性,小说人物出场次数排序小说人物关系】
- 面向2018年的设计趋势
- 0019-python学习笔记:竞技模型
- 了解RAC(ReactiveCocoa)
热门文章
- 哈佛梅森学者邹传伟:泡沫与机遇——数字加密货币和区块链金融九问
- 2011初入游戏之道
- 熹妃q传服务器维修多久,熹妃q传体力多久恢复 熹妃q传体力用不完及怎么获得...
- 新媒体文章怎么写,新媒体写作注意事项!
- 谈谈Oracle日志文件的INVALID状态(上)
- 广州市博士后研究员系列职称评审及认定
- 小妞会装机 -- 一个装机软件的开发笔记(六)
- NOIP(CSP-J)信息学奥赛_普及组第八课--“一分为N看问题“
- python实现删除重复文件
- 静则一念不生,动则万善相随