Python challenge game-mission4 第四关

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结尾,那应该是下一关入口了,

http://www.pythonchallenge.com/pc/def/peak.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值