• 技术文章 >后端开发 >Python教程

    详解python - bilibili出错的解决办法

    高洛峰高洛峰2017-03-27 15:46:32原创2474
    在获取房间号之前我们先解决上篇文章遗留的bug,即输入的房间号不是数字和对应的房间号不存在而产生的问题。

    输入的房间号不是数字:

    在python中,你所输入的必定是字符串,虽然你输入的是数字,但是类型还是str。


    roomId = input('请输入房间号:')

    运用上一篇文章的代码,我们来测试一下

    详解python - bilibili出错的解决办法

    在python中,只有同一类型的才能用"+"来连接,所以我们上一篇文章的代码也可以改成


    roomUrl = 'http://live.bilibili.com/'+ roomId

    拓展知识完毕,现在来解决问题。强大的python中有字符串处理的方法,现在我们只需要判断所输入的字符是不是数字就行。调用isdigit()函数即可完成需求。还有其他的字符串处理方法我会整理出来发到博客上。

    isdigit() 含义:如果字符串只含有数字则返回True,否则返回 False。

    判断完毕后程序就结束了,这是并不是我们想要的,我们需要的是无限判断,不是数字的话就要返回去重新输入,是数字则要进行下一步。

    思路:

    1、输入房间号。

    2、判断所输入的是不是数字。

    3、是数字则进行下一步;不是数字要重新输入。

    4、输入完毕后再判断,由此循环。

    代码:


    roomId = input('请输入房间号:')while not roomId.isdigit():     
    print("数字格式错误,请重新输入!")
         roomId = input('请输入房间号:')
    roomUrl = 'http://live.bilibili.com/'+ str(roomId)

    效果图:

    详解python - bilibili出错的解决办法

    看效果图,房间号是空也需要重新输入,数字加字母的形式也需要重新输入,满足我们的需求呢,我们继续解决下一个bug。

    输入的房间不存在(即网址不存在):

    这个是属于程序异常处理方面,我们只需要找出该程序的报错原因即可。

    详解python - bilibili出错的解决办法

    重点看最后一句,urllib.error.HTTPError: HTTP Error 404: Not Found

    网页404,没有找到网页。说明你输入的网页地址不存在。使用try-except来解决这个错误。

    思路:

    1、访问一个网址是并不知道它在不在

    2、试着访问这个地址

    3、出错则需要重新输入网址

    4、重新输入网址需要从输入房间号开始

    5、大循环是一开始到网址出错,小循环就是判断房间号

    6、输入的网址存在,那么就需要跳出这个大循环了

    代码:

    while True:
         roomId = input('请输入房间号:')
         while not roomId.isdigit():
              print("数字格式错误,请重新输入!")
              roomId = input('请输入房间号:')
         roomUrl = 'http://live.bilibili.com/'+ str(roomId)
    
         try:
              webPage=urllib.request.urlopen(roomUrl)
              break
         except:
              print('出错啦!')

    不过,这样用户体验不太好,并不知道哪里出错了,所以我们带上具体原因


    except urllib.error.HTTPError as reason:          
    print('网址出错啦!'+ str(reason))

    效果图:

    详解python - bilibili出错的解决办法

    以上就是详解python - bilibili出错的解决办法的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:python bilibili
    上一篇:使用python实现小机器人自动回复可扩展开发微信公众号的小机器人 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • python字典添加元素的方法是什么• python如何输出hello world代码• python发腾讯微博代码分享• 在Django的视图(View)外使用Session的方法• python实现2014火车票查询代码分享
    1/1

    PHP中文网