题目链接
分析思路
从题目中的图还是看不出有什么线索,图下面的句子:One small letter, surrounded by EXACTLY three big bodyguards on each of its sides.
看样子得像前面那样,从网页的源代码中寻找线索
从页面源码中看到注释部分中有很多的字母,那这样上面的句子就很好理解了,找个满足一个小写字母旁边左右分别都有且仅有三个大写字母的情况, 这个开起来就得用正则表达式这个东西了,我对正则不太懂,所以就从网上直接找了个:[^A-Z][A-Z]{3}[a-z][A-Z]{3}[^A-Z]
这样我们要做的事情就应该如下了:
- 爬取整个python网页
- 从python网页中得到注释部分的内容
- 对注释部分内容进行正则寻找,并把相应的小写字母提出出来
最后整个代码如下:
#!/usr/bin/env python3
from urllib.request import urlopen
import re
sock = urlopen("http://www.pythonchallenge.com/pc/def/equality.html")
data = re.findall(r'<!--(.+?)-->', sock.read().decode('utf-8'), re.S)
sock.close()
print (''.join(re.findall(r'[^A-Z][A-Z]{3}([a-z])[A-Z]{3}[^A-Z]', data[0], re.S)))
最后运行结果如下
linkedlist
输入http://www.pythonchallenge.com/pc/def/linkedlist.html,网页提示linkedlist.php
输入http://www.pythonchallenge.com/pc/def/linkedlist.php ,终于成功进入了level 4