Python Requests ๋ชจ๋์ ์ฌ์ฉํ ๋ ์์ธ์ฒ๋ฆฌ ๋์ ๋ฆฌ์คํธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ConnectionError: ์๋ฒ์ ์ฐ๊ฒฐํ ์ ์๊ฑฐ๋, DNS ์กฐํ์ ์คํจํ๋ ๊ฒฝ์ฐ ๋ฐ์ํฉ๋๋ค.
- Timeout: ์์ฒญ ์๊ฐ ์ด๊ณผ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ๋ฐ์ํฉ๋๋ค.
- TooManyRedirects: ๋ฆฌ๋๋ ์ ํ์๊ฐ ๋๋ฌด ๋ง์ ๊ฒฝ์ฐ ๋ฐ์ํฉ๋๋ค.
- HTTPError: HTTP ์๋ต ์ฝ๋๊ฐ 400 ์ด์์ธ ๊ฒฝ์ฐ ๋ฐ์ํฉ๋๋ค.
- RequestException: Requests ๋ชจ๋์์ ๋ฐ์ํ๋ ๋ชจ๋ ์์ธ์ ๊ธฐ๋ณธ ํด๋์ค์ ๋๋ค.
์ด๋ฌํ ์์ธ๋ค์ ์ฒ๋ฆฌํ๊ธฐ ์ํด์๋ try-except ๋ธ๋ก์ ์ฌ์ฉํ์ฌ ์์ธ ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ์ด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ค์๊ณผ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
import requests
url = "https://www.example.com"
try:
response = requests.get(url)
response.raise_for_status() # HTTPError ๋ฐ์ ๊ฐ๋ฅ
except requests.exceptions.RequestException as e:
print("Error occurred: ", e)
์ ์ฝ๋์์๋ requests.get() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํด๋น URL๋ก GET ์์ฒญ์ ๋ณด๋ด๊ณ , response.raise_for_status() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ HTTP ์๋ต ์ฝ๋๊ฐ 400 ์ด์์ธ ๊ฒฝ์ฐ HTTPError ์์ธ๋ฅผ ๋ฐ์์ํต๋๋ค. ์ด๋ฌํ ์์ธ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ try-except ๋ธ๋ก์์ requests.exceptions.RequestException ์์ธ๋ฅผ ์ฒ๋ฆฌํ์ฌ ์์ธ ์ฒ๋ฆฌ๋ฅผ ํ ์ ์์ต๋๋ค.
'๐ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ์ด์ฌ] ํ๋ก์ธ์ค ํธ๋ค๋ง (0) | 2022.05.26 |
---|---|
[ํ์ด์ฌ] win32com outlook ์๋ ๋ฉ์ผ ์ฒ๋ฆฌ (0) | 2022.03.04 |
[ํ์ด์ฌ] request ๋ชจ๋ SSLError ์๋ฌ ํด๊ฒฐ๋ฐฉ๋ฒ (0) | 2021.04.20 |
[ํ์ด์ฌ] ์ฌ์ง ์ฐพ๊ธฐ ์ฝ๋ (0) | 2020.12.28 |
[์๋ฐ์คํฌ๋ฆฝํธ] ๋ฐ์ค ์ข ๋ฅ (0) | 2020.04.29 |