pythonchallenge Level 4

Posted OTAKU_undefined

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pythonchallenge Level 4相关的知识,希望对你有一定的参考价值。

第4关地址:http://www.pythonchallenge.com/pc/def/linkedlist.html

打开显示

 改成php打开

查看源码获得提示信息

标题:follow the chain

提示:urllib may help. DON\'T TRY ALL NOTHINGS, since it will never end. 400 times is more than enough.

并且有一个链接:http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=12345

 打开链接提示下一个数字

 替换数字几次后出现信息

也不能真的手动改400次,使用urllib打开,自动获取。

运行时发现没有停止,发现中间有一个going,改为只有数字的时候继续运行,如果不是数字,打印出页面信息。

from urllib.request import urlopen
from bs4 import BeautifulSoup

def findurl(url):
    html = urlopen(url)
    bsobj = BeautifulSoup(html, "html.parser")
    info = bsobj.text
    num = info.split(" ")[-1]
    if num.isdigit():
        url = "http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=" + str(num)
        print(url)
        findurl(url)
    else:
        print(info)

url = "http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=12345"
findurl(url)

 运行到16044时,获得提示信息:Yes. Divide by two and keep going.

16044/2 = 8022 修改url,重新运行

new_url = "http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=8022"
findurl(new_url)

得到 peak.html

获得下一关地址:http://www.pythonchallenge.com/pc/def/peak.html

本文来自博客园,作者:OTAKU_undefined,转载请注明原文链接:https://www.cnblogs.com/nicole-zhang/p/15557451.html

以上是关于pythonchallenge Level 4的主要内容,如果未能解决你的问题,请参考以下文章

pythonchallenge Level 5

pythonchallenge Level 2

pythonchallenge Level 8

pythonchallenge Level 7

pythonchallenge Level 3

pythonchallenge Level 6