点击图片,跳转到页面,显示文本为“and the next nothing is xxx”,查看源代码提示,尝试400次就足够找到页面。
本关是用文本中的数字替换url中的数字,找到真正的下一关链接。
运用爬虫基础。
import requests
# 初始化第一次的url
url = "http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=12345"
r = requests.get(url)
# 循环四百次
for i in range(400):
print(r.text)
url = "http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=" + r.text.split()[-1]
r = requests.get(url)
查看输出,大多数输出都是“and the next nothing is”, 某一次输出是以“.html”结尾的,这行就是答案了,输入到URL中。
中间有一些输出很有意思,有的输出中不带数字,比如
Yes. Divide by two and keep going.
用我的代码, catch到的是最后一个单词 going,如果把going输入到URL中替换数字也可以继续进行。或者像它提示的那样,把url中的数字除以2,也可以继续进行。
我又写了段代码,让它可以在提示的地方把数字除以2。但是结果也是一样的,也没有加快得到结果的速度。
for i in range(400):
print(r.text, ' and catch: ', r.text.split()[-1])
try:
nr = int(r.text.split()[-1])
url = "http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=" + r.text.split()[-1]
r = requests.get(url)
except:
# 如果最后一个单词不是数字,就把url中的数字除以二。
nr = nr / 2
url = "http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=" + str(nr)
r = requests.get(url)