Python의 requests 라이브러리는 HTTP 요청을 보내고 응답을 받는데 매우 유용한 도구입니다. 그러나 requests를 보다 강력하게 활용할 수 있는 다양한 툴들도 함께 사용할 수 있습니다. 이 글에서는 requests와 함께 사용하는 몇 가지 유용한 툴을 소개하겠습니다.
1. beautifulsoup
beautifulsoup은 웹 스크래핑 작업을 수행하는 데 사용되는 파이썬 라이브러리입니다. requests와 함께 사용하면 웹 페이지의 HTML 내용을 가져와서 구문 분석하고 원하는 정보를 추출할 수 있습니다. 예를 들어, 다음과 같은 코드로 웹 페이지의 제목을 가져올 수 있습니다.
import requests
from bs4 import BeautifulSoup
url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
title = soup.title.text
print("Page title:", title)
2. tqdm
tqdm은 반복되는 작업의 진행 상황을 시각적으로 표시해주는 파이썬 라이브러리입니다. requests로 여러 개의 HTTP 요청을 동시에 보낼 때, 각 요청의 진행 상황을 확인하고 싶다면 tqdm을 사용할 수 있습니다. 아래 예제는 다운로드 중인 파일의 진행 상황을 표시하는 코드입니다.
import requests
from tqdm import tqdm
url = "https://example.com/file.zip"
response = requests.get(url, stream=True)
total_size = int(response.headers.get('content-length', 0))
chunk_size = 1024 # 1KB
progress_bar = tqdm(total=total_size, unit='B', unit_scale=True)
with open("file.zip", "wb") as file:
for chunk in response.iter_content(chunk_size):
file.write(chunk)
progress_bar.update(len(chunk))
progress_bar.close()
3. requests-cache
requests-cache는 requests를 사용하여 수행되는 HTTP 요청을 캐싱하고 관리하는 파이썬 라이브러리입니다. 이를 통해 동일한 요청을 여러 번 실행할 필요 없이 캐시에서 가져옴으로써 네트워크 부하를 줄일 수 있습니다. 아래 예제는 requests-cache를 사용하여 GET 요청을 캐싱하는 코드입니다.
import requests
import requests_cache
requests_cache.install_cache('example_cache')
url = "https://example.com"
response = requests.get(url)
print(response.text)
requests-cache는 캐시를 이용하여 요청을 처리하기 때문에 네트워크 접근 없이 결과를 가져올 수 있습니다.
이 외에도 requests와 함께 사용할 수 있는 다양한 툴들이 존재합니다. 개발 프로젝트의 요구 사항에 맞게 적절한 도구를 선택하여 사용하면 더 효율적이고 강력한 웹 기능을 개발할 수 있습니다.