본문 바로가기
PYTHON

파이썬[python] requests 패키지 알아보기

by 꾸꾸까까DEV 2022. 8. 21.
반응형

requests 모듈은 파이썬을 이용하여 HTTP 통신이 필요할때 가장 많이 사용되는 라이브러리 중 하나입니다.

가볍고, 실행속도가 빨라서 원격에 있는 API 호출에 많이 사용되고 있는데요.

이번 포스팅에서는 requests 라이브러리를 간단하게 사용하는 방법에 대해서 알아보겠습니다.

 

 
 

목차

  1. requests 패키지 설치 및 로딩방법
  2. requests 사용방법
  3. requests 활용함수

 

1. 패키지 설치 및 로딩방법

pip 를 이용하여 requests패키지를 설치합니다

터미널 창에서 

$ pip install requests

위 명령어를 입력하면 자동으로 설치가 됩니다.

설치 완료후 

import requests

위와 같이 requests 패키지를 import 합니다.

여기까지 진행하면 requests를 활용할 수 있습니다.

 

2. 사용방법

방식(method)에 따라 HTTP 요청을 할수 있는 메소드들이 존재하는데 하나씩 살펴보자

 

GET 방식:  requests.get()

 

requests.get()의 사용 방법은 아주 간단하다

requests.get("https://google.com")

위와 같이 파라미터로 접속할 주소를 입력하면 

바로 위와같이 Response 객체를 반환한 것을 볼 수 있다.

 

#파라미터 넘기기

 

주소줄에 직접 입력하기

URL = "https://www.google.com/search?q=python"
Response = requests.get(URL)
print("Response.status_code :", Response.status_code)

params 속성 이용하기

URL = "https://www.google.com/search"
param = { "q" : "python" }
Response = requests.get(URL, params=param)
print("Response.status_code :", Response.status_code)

 

파라미터를 딕셔너리 형태로 params 속성에 넣으면 간단하게 http request를 보낼수 있다.

 

POST 방식: requests.post()

이번엔 POST 방식으로 파라미터를 넘겨보자

GET 방식에서는 파라미터를 주소줄에 쓰거나, params로 넘겼는데, POST방식은 data로 넘기면 된다.

import requests
URL = "https://google.com/search"
data = {"q": "python"}
Response = requests.post(URL, data=data)
print("Response.status_code :", Response.status_code)

구글검색에 POST로 검색어를 보내면 아래와 같이 405 에러가 발생한다.

구글검색은 검색어를 GET 방식으로만 받아들인다 

 

 

Response 객체 확인하기

# text 속성으로 requests에서 수집한 HTML 원문을 확인할 수 있다.

 

# request 객체에 접근

print("Response.request.path_url : ", Response.request.path_url)
print("Response.request.method : ", Response.request.method)
print("Response.request.headers : ", Response.request.headers)

 

# encoding 정보 확인

print("Response.encoding : ", Response.encoding)


#  response가 json 형식을 경우 딕셔너리 타입으로 바로 변환

Response.json()

 

# content 속성을 통해 바이너리 타입으로 반환

Response.content

 

# 응답 코드 확인

Response.status_code


# 응답 코드가 200이 아닌 경우 에러 raise

Response.raise_for_status()

 

 

 

 

3. 활용함수

이제 파라미터를 통해 메소드 POST, GET을 마음대로 바꿔가며 사용할수 있는 함수를 만들어 보자

def getUrl(_url, _params, _type):
  if(_type=="GET"):
    Response = requests.get(URL, params=_params)
  else:
    Response = requests.post(URL, data=_params)
  return Response.text

실행해보면, 아래와 같이 데이터를 잘 가져오는 것을 확인할 수 있다.

 

 

반응형