Level 4:
此关有点抽象,打开PAGE SOURCE,查看用绿色字体标注的部分,会发现提示所用模块:URLLIB,prompt 如下:
<!-- urllib may help. DON'T TRY ALL NOTHINGS, since it will never end. 400 times is more than enough. -->
先双击图片,会发现跳转到一个新PAGE,注意PAGE CONTENT提示:"and the next nothing is xxxxx",题目的要求是将后面的NOTHING(数字部分)提取出来,作为URL 上的NOTHING值,大概重复400次。如果手工改,达不到题目要求。这就涉及需使用URLLIB模块进行循环操作。示例代码如下:
import urllib,re
url="http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing="
desNum="12345"
for i in range(400):
content=urllib.urlopen(url+desNum).read()
desNum="".join(re.findall(r"nothing is (\d+)",content))
ifnot desNum:
print content
break
print"next nothing:",desNum
问题点:此程序循环到NOTHING=16044时content 会显示出一行英文:Yes.Divide by two and keep going.大体意思是除2继续循环,此时需将程序中的desNum初始化为8022(16044/2=8022),然后继续运行程序。等程序终止时,会找到我们所需要的答案:****.html.答案我就不说了,呵呵。
PS: 解完题,感觉很爽,进一步了解了URLLIB的运用。但也意识到知识的薄弱(做的时间比较长),还得继续努力!