zoukankan      html  css  js  c++  java
  • 使用python 3.x 对pythonchallenge-----4的解答过程

    pythonchallenge-4地址 : http://www.pythonchallenge.com/pc/def/linkedlist.php
    图片如下:

    题目解析:通过页面源代码解析,要打开链接http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=12345,然后获取nothing值,一直循环直到得出答案
    解题过程:

    from urllib import request,parse
    import re
    
    url = r'http://www.pythonchallenge.com/pc/def/linkedlist.php?'
    
    headers = {
        'User-Agent': r'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) '
                        r'Chrome/45.0.2454.85 Safari/537.36 115Browser/6.0.3',
        'Connection': 'keep-alive'
    }
    data = {}
    data['nothing'] = "12345"
    
    def getnothing(url,data,headers):
        data = parse.urlencode(data)
        url = url + data
        req = request.Request(url,headers=headers)
        page = request.urlopen(req).read().decode('utf-8')
        return page
    
    for i in range(251):
        htmlstr = getnothing(url=url,data=data,headers=headers)
        pattern = re.compile('d+')
        nothingnum = re.findall(pattern,htmlstr)
        if nothingnum:
            data['nothing'] = nothingnum[0]
            if len(nothingnum)>1:
                data['nothing'] = nothingnum[1]
        else:
            data['nothing'] = str(int(data['nothing'])/2)
        print(str(i) + " ---- " + htmlstr)
        print(data['nothing'])
    

     答案:

    250 ---- peak.html
    

     心得:在第85次和第140次的时候分别有个小坑

    85 ---- Yes. Divide by two and keep going
    ...
    ...
    ...
    140 ---- There maybe misleading numbers in the 
    text. One example is 82683. Look only for the next nothing and the next nothing is 63579
    
     
     
  • 相关阅读:
    JavaScript中对事件简单的理解
    正则表达式 RE模块
    模块
    面向对象进阶
    元类详细解释
    四.面向对象和函数补充
    四.函数
    Python的基础知识:
    五层协议及tcp三次握手四次挥手
    nginx常见错误
  • 原文地址:https://www.cnblogs.com/yinsjun/p/7465908.html
Copyright © 2011-2022 走看看