http://www.pythonchallenge.com/pc/def/linkedlist.php
点开网页,查看源代码,建议使用urllib,但是还不会,先看看能不能搞定,然后再学一下看看。
无意中点击图片发现进去是一段话,提示下一个nothing的值,再看url中有nothing,因此,代入值看看,三五次后发现了题目的意思,于是变成看看能不能跑出来?
import requests
import time
def get_text(url):
r = requests.get(url)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text.split()[-1]
start = time.time()
url = 'http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing='
list = ['12345']
for i in range(333):
url2 = url + list[-1]
txt = get_text(url2)
#print(txt)
list.append((txt))
print(list[-10:])
end = time.time()
print(end - start)
跑了3分钟跑完,发现不太对劲,像还没跑完似的,再将每次输出结果打印出来看看,发现有东西乱入了。。。第80来行,有个going. 查看going.前面的页面16044,提示:“Yes. Divide by two and keep going.”坑在这里,要讲16044//2 也就是8022代入继续:
import requests
import time
def get_text(url):
r = requests.get(url)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text.split()[-1]
start = time.time()
url = 'http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing='
list = ['12345']
for i in range(400):
url2 = url + list[-1]
txt = get_text(url2)
if txt == 'going.':
txt = str(int(list[-1]) // 2)
elif "html" in txt:
print(txt)
break
list.append(txt)
end = time.time()
print(end - start)
继续跑,等结果,结果中出现了peak.html,既然是html结尾,那应该是下一关入口了,