您的位置:首页 > 编程语言 > Python开发

pythonchallenge 闯关游戏

2011-07-26 20:08 561 查看
Level4:



此关有点抽象,打开PAGESOURCE,查看用绿色字体标注的部分,会发现提示所用模块:URLLIB,prompt如下:

<!--urllibmayhelp.DON'TTRYALLNOTHINGS,sinceitwillneverend.400timesismorethanenough.-->


先双击图片,会发现跳转到一个新PAGE,注意PAGECONTENT提示:"andthenextnothingisxxxxx",题目的要求是将后面的NOTHING(数字部分)提取出来,作为URL上的NOTHING值,大概重复400次。如果手工改,达不到题目要求。这就涉及需使用URLLIB模块进行循环操作。示例代码如下:

importurllib,re
url="http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing="
desNum="12345"
foriinrange(400):
content=urllib.urlopen(url+desNum).read()
desNum="".join(re.findall(r"nothingis(\d+)",content))

ifnotdesNum:
printcontent
break

print"nextnothing:",desNum


问题点:此程序循环到NOTHING=16044时content会显示出一行英文:Yes.Dividebytwoandkeepgoing.大体意思是除2继续循环,此时需将程序中的desNum初始化为8022(16044/2=8022),然后继续运行程序。等程序终止时,会找到我们所需要的答案:****.html.答案我就不说了,呵呵。

PS:解完题,感觉很爽,进一步了解了URLLIB的运用。但也意识到知识的薄弱(做的时间比较长),还得继续努力!


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: