파충류 request 모듈 이상 처리
1 코드
'''
URLError urllib error , OSError , error ,
request URLError 。
reason, 。
'''
from urllib import request, error
try:
response = request.urlopen('http://cuiqingcai.com/index.htm')
except error.URLError as e:
print(e.reason)
2 실행 결과
E:\WebSpider\venv\Scripts\python.exe E:/WebSpider/3_1_2.py
Not Found
3 설명 하 다.
프로그램 이 직접 오 류 를 보고 하지 않 고 위 와 같은 내용 을 출력 했다. 이렇게 하면 위 와 같은 조작 을 통 해 우 리 는 프로그램 이 이상 하 게 종료 되 는 것 을 피 할 수 있 고 이상 하 게 효과 적 인 처 리 를 받 을 수 있다.
둘째. HTTPError
1 눈여겨보다
HTTP Error 는 URLError 의 하위 클래스 로 인증 요청 실패 등 HTTP 요청 오 류 를 처리 하 는 데 사 용 됩 니 다.그것 은 다음 과 같은 세 가지 속성 이 있다.
2 실전 코드
from urllib import request,error
try:
response = request.urlopen('http://cuiqingcai.com/index.htm')
except error.HTTPError as e:
print(e.reason, e.code, e.headers, sep='
')
3
3 실전 결과
E:\WebSpider\venv\Scripts\python.exe E:/WebSpider/3_1_2.py
Not Found
404
Server: nginx/1.10.3 (Ubuntu)
Date: Mon, 07 Jan 2019 13:32:06 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Vary: Cookie
Expires: Wed, 11 Jan 1984 05:00:00 GMT
Cache-Control: no-cache, must-revalidate, max-age=0
Link: ; rel="https://api.w.org/"
4 실전 설명
여전히 같은 주소 입 니 다. HTTP Error 이상 을 캡 처 하여 reason, code, headers 속성 을 출력 합 니 다.
5 실전 2 코드
'''
URLError HTTPError , ,
HTTPError, 、 、headers 。
HTTPError , URLError , 。
, else 。 。
'''
from urllib import request, error
try:
response = request.urlopen('http://cuiqingcai.com/index.htm')
except error.HTTPError as e:
print(e.reason, e.code, e.headers, sep='
')
except error.URLError as e:
print(e.reason)
else:
print('Request Successfully')
6 실전 2 운행 결과
E:\WebSpider\venv\Scripts\python.exe E:/WebSpider/3_1_2.py
Not Found
404
Server: nginx/1.10.3 (Ubuntu)
Date: Mon, 07 Jan 2019 13:36:21 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Vary: Cookie
Expires: Wed, 11 Jan 1984 05:00:00 GMT
Cache-Control: no-cache, must-revalidate, max-age=0
Link: ; rel="https://api.w.org/"
7 실전 3 코드
'''
,reason , 。
timeout
'''
import socket
import urllib.request
import urllib.error
try:
response = urllib.request.urlopen('https://www.baidu.com', timeout=0.01)
except urllib.error.URLError as e:
print(type(e.reason))
if isinstance(e.reason, socket.timeout):
print('TIME OUT')
8 실전 3 운행 결과
E:\WebSpider\venv\Scripts\python.exe E:/WebSpider/3_1_2.py
TIME OUT
9 실전 3 설명
reason 속성의 결 과 는 socket. timeout 류 임 을 발견 할 수 있 습 니 다.그래서 여기 서 우 리 는 isinstance () 방법 으로 그의 유형 을 판단 하고 더욱 상세 한 이상 판단 을 할 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.