22.Python requests 완벽 가이드 — VS Code에서 HTTP 요청 보내기부터 API 활용까지

저도 처음에는 필요한 정보를 얻기 위해 웹사이트를 이리저리 드나들며 마우스로 직접 긁어다 엑셀에 붙여넣곤 했습니다. 수작업으로 수십 페이지를 복사하다 보면 손목도 아프고 시간도 금방 지나갔죠. 하지만 파이썬의 requests 라이브러리를 알게 된 후로는 웹 데이터를 가져오거나 API를 호출하는 모든 과정이 자동화되었습니다. 예전에는 한 시간씩 걸리던 단순 반복 작업이, 이제는 코드 실행 한 번으로 단 1초 만에 끝나면서 업무 효율이 몰라보게 달라졌습니다


Python requests는 VS Code 환경에서 웹 서버와 데이터를 주고받을 때 가장 많이 사용하는 라이브러리입니다. 웹 크롤링, REST API 호출, 자동 로그인, 파일 다운로드 등 다양한 자동화 프로젝트의 시작점이라고 할 수 있습니다.

이번 글에서는 requests 라이브러리의 개념부터 설치 방법, GET과 POST 요청, JSON 데이터 처리, 파일 다운로드, 오류 처리까지 초보자도 쉽게 이해할 수 있도록 단계적으로 설명하겠습니다.


Python requests란 무엇인가

requests 라이브러리의 역할

Python requests는 인터넷을 통해 다른 서버와 데이터를 주고받을 수 있도록 도와주는 라이브러리입니다.

쉽게 비유하면 requests는 인터넷 세상의 택배 기사와 같습니다. 내가 원하는 주소(API)에 요청을 보내면 필요한 데이터를 받아 다시 나에게 전달해 줍니다.

또 다른 비유를 하자면, 웹 브라우저가 식당에서 메뉴를 주문하는 손님이라면 requests는 주문을 대신 전달하고 음식을 가져오는 직원과 같습니다.

웹사이트를 직접 열지 않아도 프로그램이 대신 요청을 보내고 결과를 받아올 수 있다는 점이 가장 큰 장점입니다.

대표적인 활용 분야는 다음과 같습니다.

  • REST API 호출
  • 웹 크롤링
  • 챗봇 개발
  • 자동 로그인
  • 파일 다운로드
  • 날씨, 환율, 주식 정보 조회

VS Code에서 Python requests 설치하기

requests 설치

VS Code 터미널에서 아래 명령어를 실행합니다.

pip install requests

설치가 완료되었는지 확인하려면 다음 코드를 실행합니다.

import requests

print(requests.__version__)

버전 정보가 출력되면 정상적으로 설치된 것입니다.



Python requests GET 요청 사용법

가장 기본적인 GET 요청

GET 요청은 서버에서 정보를 가져올 때 사용하는 가장 기본적인 방식입니다.

import requests

url = "https://jsonplaceholder.typicode.com/posts/1"

response = requests.get(url)

print(response.status_code)
print(response.text)

위 코드는 테스트용 API에서 데이터를 받아옵니다.

실행 결과는 JSON 형태의 데이터가 출력됩니다.

200

{
    ...
}

여기서 200은 요청이 정상적으로 처리되었다는 의미입니다.



JSON 데이터 처리하기

실무에서는 대부분 JSON 형태의 데이터를 사용합니다.

import requests

url = "https://jsonplaceholder.typicode.com/posts/1"

response = requests.get(url)

data = response.json()

print(data["title"])
print(data["body"])

.json() 메서드를 사용하면 JSON 데이터를 Python의 딕셔너리 형태로 바로 사용할 수 있습니다.


URL 파라미터 전달하기

검색 조건이나 페이지 번호를 전달할 때는 params 옵션을 사용합니다.

import requests

url = "https://jsonplaceholder.typicode.com/comments"

params = {
    "postId": 1
}

response = requests.get(url, params=params)

print(response.url)
print(response.json())

params를 사용하면 URL을 직접 이어 붙이지 않아도 안전하게 요청을 보낼 수 있습니다.


Python requests POST 요청 사용하기

POST 요청이 필요한 이유

GET이 정보를 가져오는 방식이라면 POST는 데이터를 서버에 전달하는 방식입니다.

회원가입, 로그인, 게시글 작성 등이 대표적인 예입니다.

import requests

url = "https://jsonplaceholder.typicode.com/posts"

payload = {
    "title": "Python",
    "body": "Requests Example",
    "userId": 1
}

response = requests.post(
    url,
    json=payload
)

print(response.status_code)
print(response.json())

POST 요청에서는 json= 옵션을 사용하는 것이 가장 일반적입니다.



Python requests로 파일 다운로드하기

이미지 다운로드

requests는 파일 다운로드에도 자주 사용됩니다.

import requests

url = "https://example.com/image.jpg"

response = requests.get(url)

with open("image.jpg", "wb") as file:
    file.write(response.content)

print("다운로드 완료")

텍스트는 response.text를 사용하지만 이미지나 PDF처럼 바이너리 파일은 response.content를 사용합니다.


PDF 다운로드

import requests

url = "https://pdfobject.com/pdf/sample.pdf"
response = requests.get(url) with open("report.pdf", "wb") as file: file.write(response.content)

이 방식을 활용하면 자동 보고서 다운로드 시스템도 쉽게 만들 수 있습니다.



Python requests 실무 활용 사례

API 데이터 수집

공공데이터 API나 날씨 API를 호출하여 데이터를 자동으로 수집할 수 있습니다.

웹 크롤링

BeautifulSoup과 함께 사용하면 웹페이지 내용을 자동으로 분석할 수 있습니다.

텔레그램 알림

requests를 이용하면 텔레그램 Bot API를 호출하여 자동 알림을 전송할 수 있습니다.

OpenAI API 호출

OpenAI API 역시 HTTP 요청 기반으로 동작하므로 requests 라이브러리로 사용할 수 있습니다.


Python requests에서 자주 발생하는 오류

ModuleNotFoundError

원인

라이브러리가 설치되지 않은 경우입니다.

해결 방법

pip install requests

ConnectionError

원인

인터넷 연결이 없거나 서버가 응답하지 않는 경우입니다.

import requests

try:
    requests.get("https://example.com")
except requests.exceptions.ConnectionError:
    print("연결 실패")

Timeout 오류

응답이 오래 걸리는 경우 timeout을 지정하는 것이 좋습니다.

response = requests.get(
    url,
    timeout=5
)

시간이 지나도 응답이 없으면 자동으로 예외가 발생합니다.


상태 코드 확인하기

print(response.status_code)

대표적인 상태 코드는 다음과 같습니다.

  • 200 : 정상 처리
  • 201 : 생성 완료
  • 400 : 잘못된 요청
  • 401 : 인증 실패
  • 404 : 페이지 없음
  • 500 : 서버 오류

Python requests를 더 잘 활용하는 방법

requests는 단독으로 사용해도 강력하지만 다른 라이브러리와 함께 사용하면 더욱 강력해집니다.

추천 조합은 다음과 같습니다.

  1. requests + BeautifulSoup → 웹 크롤링
  2. requests + pandas → API 데이터 분석
  3. requests + Telegram Bot → 알림 자동화
  4. requests + FastAPI → 서버 개발
  5. requests + OpenAI API → AI 서비스 개발

이러한 조합은 실제 업무 자동화 프로젝트에서도 매우 자주 활용됩니다.


마무리

Python requests는 웹과 프로그램을 연결해 주는 가장 중요한 라이브러리 중 하나입니다. VS Code 환경에서 requests를 익혀두면 단순한 HTTP 요청을 넘어 API 연동, 데이터 수집, 자동화 시스템 구축까지 다양한 프로젝트를 구현할 수 있습니다.

처음에는 GET과 POST 요청만 익혀도 충분합니다. 이후 JSON 처리와 오류 처리, 파일 다운로드까지 차근차근 학습하면 대부분의 웹 기반 자동화 프로젝트를 직접 구현할 수 있습니다.

핵심 요약

  • requests는 HTTP 요청을 가장 쉽게 처리하는 Python 라이브러리입니다.
  • GET 요청은 데이터 조회에 사용합니다.
  • POST 요청은 데이터를 서버로 전송할 때 사용합니다.
  • JSON 데이터는 .json() 메서드로 쉽게 처리할 수 있습니다.
  • response.content는 파일 다운로드에 사용합니다.
  • timeout과 예외 처리를 함께 사용하면 안정적인 프로그램을 만들 수 있습니다.
  • requests는 웹 크롤링, API 연동, AI 서비스 개발 등 다양한 분야의 기본 도구입니다.



댓글

이 블로그의 인기 게시물

1.Python 설치부터 실행까지 10분 만에 끝내기 — 초보자도 바로 따라 하는 완벽 가이드

30.Python pyautogui로 마우스와 키보드 자동화하기: VSCode 실전 가이드

29.Python subprocess로 외부 명령어 실행하기: VSCode 실전 활용법