关卡五:peak hell Pickle
提示:
图片中的文字为:发音。此处线索不明朗。依旧查看网页源码:
从上图红色文字:peak hell的发音听起来是否熟悉。其发音和python的包名Pickle的发音很是相似。Pickle实现序列化和反序列化,把数据结构转换成字符串 ,可以保存到文件,方便下次快速恢复,也可以通过网络传输。
目前为止,线索依然不足够解决问题。点击绿框的“banner.p”,查看内容。
根据内容可知,很类似于Pickle序列化后的内容。下面是程序:
import pickle #引入一个序列化和反序列化的包
import urllib.request as urlre
file = urlre.urlopen('http://www.pythonchallenge.com/pc/def/banner.p')
dr = b''#必须是二进制文件
for jsr in file:
dr += jsr#将banner.p中的所有序列化字符合为一个整体
start = pickle.loads(dr)#反序列化
for gh in start:
print(gh)#反序列化的内容
上述程序运行后的结果如下:
根据结果看,内容包括很多空格、井号以及数字。后面的数字可能是前面相应符号的个数,查看真正的输出内容:
#将序列化的内容输出
for jj in pickle.loads(dr):
cc = ''
for hh in jj:
cc += hh[0] * hh[1]
print(cc)
输出结果见下图:
可看出输出的单词为:channel。将浏览器地址的peak.html改为channel.html即可进入下一关。
不定期更新,欢迎留言,敬请关注!!!