Requests 라이브러리를 사용하고 웹 사이트에 액세스하여 다음 코드로 웹 사이트에서 데이터를 수집하고 있습니다.
r = requests.get(url)
부적절한 URL을 입력하고 404 오류가 반환되는 경우 오류 테스트를 추가하고 싶습니다. 의도적으로 잘못된 URL을 입력하면 다음과 같이 할 수 있습니다.
print r
나는 이것을 얻는다 :
<Response [404]>
편집하다:
나는 그것을 테스트하는 방법을 알고 싶다. 객체 유형은 여전히 동일합니다. r.content
또는을 할 때 r.text
사용자 지정 404 페이지의 HTML을 가져옵니다.
답변
상기 봐 r.status_code
속성 :
if r.status_code == 404:
# A 404 was issued.
데모:
>>> import requests
>>> r = requests.get('http://httpbin.org/status/404')
>>> r.status_code
404
requests
오류 코드 (4xx 또는 5xx)에 대한 예외를 발생 시키 려면 다음 을 호출하십시오 r.raise_for_status()
.
>>> r = requests.get('http://httpbin.org/status/404')
>>> r.raise_for_status()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "requests/models.py", line 664, in raise_for_status
raise http_error
requests.exceptions.HTTPError: 404 Client Error: NOT FOUND
>>> r = requests.get('http://httpbin.org/status/200')
>>> r.raise_for_status()
>>> # no exception raised.
부울 컨텍스트에서 응답 오브젝트를 테스트 할 수도 있습니다. 상태 코드가 오류 코드 (4xx 또는 5xx)가 아닌 경우 ‘true’로 간주됩니다.
if r:
# successful response
보다 명확하게하려면을 사용하십시오 if r.ok:
.