728x90
처음 네이버, 카카오, 유튜브 API 이용하면서 네이버 만든 예제를 가지고 urllib이용하다가 요번에 워드프레스 연동하면서 requests를 알게 되었습니다.
요번에 공부하면서 두가지를 정리하였습니다.
Python에서 HTTP 요청을 수행하는 데 널리 사용되는 두 가지 라이브러리는 urllib와 requests입니다. 두 라이브러리는 모두 URL을 다루고 웹 리소스를 요청하는 데 사용되지만, 사용 편의성, 기능성, 그리고 다양한 측면에서 차이점이 있습니다.
urllib 라이브러리
urllib는 Python 표준 라이브러리의 일부로, 외부 종속성 없이 사용할 수 있습니다. 이는 다음과 같은 네 가지 하위 모듈로 구성됩니다:
- urllib.request: URL을 열고 읽는 기능을 제공합니다.
- urllib.error: urllib.request에서 발생하는 예외를 다룹니다.
- urllib.parse: URL을 구문 분석하고 구성 요소로 분해하는 기능을 제공합니다.
- urllib.robotparser: 웹사이트의 robots.txt 파일을 해석하는 기능을 제공합니다.
장점
- 표준 라이브러리: 별도의 설치가 필요 없으며, Python이 설치된 환경에서는 기본적으로 사용할 수 있습니다.
- 기능의 세분화: URL 처리, 구문 분석, 예외 처리 등 여러 기능을 세분화하여 제공합니다.
- 세밀한 제어: HTTP 요청의 세부 사항을 세밀하게 제어할 수 있습니다.
단점
- 사용법이 복잡: HTTP 요청을 보내기 위해 더 많은 코드가 필요하며, 사용법이 다소 복잡합니다.
- 사용자 친화적이지 않음: 직관적이지 않은 인터페이스로 인해 사용하기 어렵습니다.
- 낮은 추상화 수준: 기본적인 HTTP 요청을 보내는 데에도 많은 설정이 필요합니다.
import urllib.request
url = 'http://example.com'
response = urllib.request.urlopen(url)
data = response.read()
print(data)
requests 라이브러리
requests는 제삼자 라이브러리로, Python의 HTTP 요청을 단순화하기 위해 설계되었습니다. 더 직관적이고 사용하기 쉬운 인터페이스를 제공합니다.
장점
- 사용 용이성: 직관적이고 읽기 쉬운 코드로 HTTP 요청을 쉽게 보낼 수 있습니다.
- 간단한 API: 간단하고 명확한 API를 제공하여 코드 작성이 쉽습니다.
- 강력한 기능: 세션 관리, 쿠키 처리, 파일 업로드 등 다양한 기능을 쉽게 사용할 수 있습니다.
- 좋은 문서화: 풍부한 문서와 예제로 인해 배우기 쉽습니다.
단점
- 외부 종속성: 표준 라이브러리가 아니므로 별도로 설치해야 합니다.
- 무거운 의존성: 다른 경량 라이브러리보다 메모리 사용량이 많을 수 있습니다.
import requests
url = 'http://example.com'
response = requests.get(url)
data = response.text
print(data)
주요 차이점
특징 | urllib | requests |
설치 필요 여부 | 블필요(표준라이브러리) | 필요(제3자 라이브러리) |
사용 용이성 | 복잡하고 장황함 | 직관적이고 간단함 |
기능성 | 세분화된 모듈로 다양한 기능 제공 | 풍부한 기능을 하나의 패키지로 제공 |
세션 및 쿠키 관리 | 수동으로 관리해야함 | 자동으로 관리됨 |
문서화 | 표준 라이브러리로서 기본 문서 제공 | 풍부한 문서와 예제 제공 |
결론
- 간단한 작업: 간단한 HTTP 요청이나 URL 처리 작업에는 requests 라이브러리를 사용하는 것이 좋습니다. requests는 사용이 용이하고 코드가 간결하며, 대부분의 일반적인 HTTP 작업을 쉽게 처리할 수 있습니다.
- 복잡한 작업: 세밀한 제어가 필요하거나, 외부 라이브러리를 설치할 수 없는 환경에서는 urllib를 사용하는 것이 적합합니다. 다만, 사용법이 다소 복잡할 수 있으므로 주의가 필요합니다.
728x90
'CoWithMe' 카테고리의 다른 글
실력 조정 코칭을 통해 배우는 성장과 변화 (88) | 2024.07.19 |
---|---|
전문성 향상을 위한 의도적 수련의 비결 타당성과 피드백, 그리고 몰입의 중요성 (82) | 2024.07.18 |
워드프레스닷컴 API를 활용하기 위한 앱생성 링크 바로가기 (80) | 2024.07.16 |
전문가가 되지 못하는 비밀 타당성과 피드백의 중요성 (70) | 2024.07.15 |
숙취가 안된 코딩 그리고 장고와 DRF: 쿼리큘럼 추측 및 개인 학습 계획 (8) | 2024.07.14 |