结题思路:
我们看 pronounce it peak peak peak 原来啊 python 模块里有一个模块 叫 pickle 模块。支持序列号和反序列化。那什么是 序列化与反序列化呢?就是 将数据持久化到内存或者硬盘里 就叫序列化,从这里面再读出来 就叫反序列化。类似于java里的 serailized 和 parable 可序列化的。【主要用于存储到内存中】或者在Activiy中传递,我说的远了点。来来来继续我们继续解题!! 暗示我们用 pickle模块。我们查看源代码(网页源代码)。发现有一个东西。来来来继续。下面是源代码:
页面源代码为:
<html>
<head>
<title>peak hell</title>
<link rel="stylesheet" type="text/css" href="../style.css">
</head>
<body>
<center>
<img src="peakhell.jpg"/>
<br><font color="#c0c0ff">
pronounce it
<br>
<peakhell src="banner.p"/>
</body>
</html>
<!-- peak hell sounds familiar ? -->
关键突破点:
banner.p。暗示我们要反序列化或者序列化这个鸟东西。于是很快我们写出了如下代码:
# -*- coding:utf-8 -*- # ********************************** # ** http://weibo.com/lixiaodaoaaa # # ** create at 2017/6/15 14:29 *** # ****** by:lixiaodaoaaa *********** import pickle import urllib import pprint def changeLetterToString(line): letter_string = "" for (char, times) in line: letter_string += char * times return letter_string sourceUrl = "http://www.pythonchallenge.com/pc/def/peak.html" dataUrl = "http://www.pythonchallenge.com/pc/def/banner.p" myData = urllib.urlopen(dataUrl) myObject = pickle.load(myData) # pprint.pprint(myObject, None, 14) for line in pickle.load(urllib.urlopen(dataUrl)): result = "" for char, times in line: result +="".join(char * times) print result
运行的结果如下:
##### #####
#### ####
#### ####
#### ####
#### ####
#### ####
#### ####
#### ####
### #### ### ### ##### ### ##### ### ### ####
### ## #### ####### ## ### #### ####### #### ####### ### ### ####
### ### ##### #### ### #### ##### #### ##### #### ### ### ####
### #### #### ### ### #### #### #### #### ### #### ####
### #### #### ### #### #### #### #### ### ### ####
#### #### #### ## ### #### #### #### #### #### ### ####
#### #### #### ########## #### #### #### #### ############## ####
#### #### #### ### #### #### #### #### #### #### ####
#### #### #### #### ### #### #### #### #### #### ####
### #### #### #### ### #### #### #### #### ### ####
### ## #### #### ### #### #### #### #### #### ### ## ####
### ## #### #### ########### #### #### #### #### ### ## ####
### ###### ##### ## #### ###### ########### ##### ### ######
结论:
啊哈哈,是一个channel 。我们就知道我们下一关的跳转地址是:
http://www.pythonchallenge.com/pc/def/
channel.html.
OVER