CoWithMe

Python 라이브러리 urllib와 requests

이영훈닷컴 2024. 7. 17. 10:21
728x90

처음 네이버, 카카오, 유튜브 API 이용하면서 네이버 만든 예제를 가지고 urllib이용하다가 요번에 워드프레스 연동하면서 requests를 알게 되었습니다. 

요번에 공부하면서 두가지를 정리하였습니다.

 

Python에서 HTTP 요청을 수행하는 데 널리 사용되는 두 가지 라이브러리는 urllib와 requests입니다. 두 라이브러리는 모두 URL을 다루고 웹 리소스를 요청하는 데 사용되지만, 사용 편의성, 기능성, 그리고 다양한 측면에서 차이점이 있습니다.

urllib 라이브러리
urllib는 Python 표준 라이브러리의 일부로, 외부 종속성 없이 사용할 수 있습니다. 이는 다음과 같은 네 가지 하위 모듈로 구성됩니다:

 

  1. urllib.request: URL을 열고 읽는 기능을 제공합니다.
  2. urllib.error: urllib.request에서 발생하는 예외를 다룹니다.
  3. urllib.parse: URL을 구문 분석하고 구성 요소로 분해하는 기능을 제공합니다.
  4. 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를 사용하는 것이 적합합니다. 다만, 사용법이 다소 복잡할 수 있으므로 주의가 필요합니다.

https://blog.leeyounghun.com/entry/%EB%84%A4%EC%9D%B4%EB%B2%84-%EC%B9%B4%EC%B9%B4%EC%98%A4-%EC%9C%A0%ED%8A%9C%EB%B8%8C-API%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%88%98%EC%A7%91-%EC%84%B1%EA%B3%B5%EA%B8%B0-%ED%8C%90%EA%B5%90-%EC%B9%B4%ED%8E%98-%EC%9A%B0%EB%93%9C%EC%A7%84

 

네이버, 카카오, 유튜브 API를 활용한 데이터 수집 성공기 판교 카페 우드진

파이썬 기초만 가지고 나만의 프로젝트를 시작 최종 목표는파이썬 애니 웨어 서버에 업로드하여 나 혼자라도 보는 웹 서비스 하나 만들어보려고 한다. 1단계 : 네이버, 카카오, 유튜브 api 활용

blog.leeyounghun.com

728x90