• 使用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
    
     
     
  • 相关阅读:
    Struts2之Domain Model(域模型)。
    struts2接收参数的5种方法
    java泛型中特殊符号的含义
    @value取值
    Spring分页实现PageImpl<T>类
    eclipse快捷键整理
    String字符串的截取
    Java调用ASP.NET的webservice故障排除
    根据wsdl文件用soapUi快速创建webService服务(有图有真相)
    @Autowired标签与 @Resource标签 的区别
  • 原文地址:https://www.cnblogs.com/yinsjun/p/7465908.html
Copyright © 2020-2023  润新知