방번호를 받기 전, 먼저 이전 글에서 남긴 버그, 즉 입력한 방번호가 숫자가 아니고 해당 방번호가 존재하지 않아 발생하는 문제를 먼저 해결해보겠습니다.
입력한 방 번호는 숫자가 아닙니다.
파이썬에서는 숫자를 입력하더라도 유형은 여전히 문자열이어야 합니다.
roomId = input('请输入房间号:')
이전 글의 코드를 활용해서 테스트해보자
파이썬에서는 똑같은 것만 있다 type은 "+"로 연결될 수 있으므로 이전 기사의 코드를
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)
렌더링:
렌더링을 보면 방번호는 비어 있음 또한 다시 입력해야 하며, 숫자와 문자의 형태도 우리의 요구 사항에 맞게 다시 입력해야 합니다. 다음 버그를 계속 해결해 보겠습니다.
입력한 방이 존재하지 않습니다(즉, URL이 존재하지 않습니다):
프로그램 예외 처리를 위한 부분이므로 프로그램 오류의 원인만 알아내면 됩니다.
마지막 문장인 urllib.error.HTTPError: HTTP 오류 404: 찾을 수 없음
웹 페이지 404, 웹 페이지를 찾을 수 없습니다. 입력한 웹 주소가 존재하지 않는다는 의미입니다. 이 오류를 해결하려면 try-Exception을 사용하십시오.
아이디어:
1. 웹사이트 접속 시 존재 여부를 알 수 없음
2. 이 주소로 접속해 보세요
3. 잘못 입력한 경우 URL을 다시 입력해야 합니다
4. URL을 다시 입력하려면 방 번호를 입력해야 합니다
5. 크게 루프는 처음에 URL이 잘못된 경우이고 작은 루프는 방 번호를 확인하는 것입니다
6, 입력한 URL이 존재하면 이 큰 루프에서 뛰어내려야 합니다
코드:
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 오류 솔루션에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!