- Requests 라이브러리는 파이썬에서 HTTP를 호출하는 프로그램을 작성할 때 가장 많이 사용되는 라이브러리이다.
API
Requests 라이브러리는 한눈에 알아보기 쉬운 직관적인 API를 제공한다. 대표적으로 사용되는 4가지 방식을 보자.
- GET : request.get()
- POST : request.post()
- PUT : request.put()
- DELETE : request.delete()
Response(응답 상태)
- HTTP를 호출하게 되면 응답 상태 코드를 반환 받게 되는데, 일반적으로 반환되어지는 코드를 보고 요청이 잘 처리 되었는지를 알 수 있다.
- 만약 호출할 수 없는 주소이거나, 호출하는 과정에서 문제가 생겼다면 Error 코드가 이전에 발생할 확률이 높지만 만약 Error 코드가 나오지 않는데 해당 부분에서 문제가 생긴다면 Response를 꼭 확인해보자!
[1] Response Code는 일반적으로 print함수 또는 응답 객체의 status_code 속성을 통해 얻을 수 있다.
>>> import requests
>>> response = requests.get("https://naver.com/")
>>> response.status_code
200
>>> print(response)
<Response [200]>
Response Body (응답 전문)
- 정상적으로 응답을 한 경우, 응답 전문에 요청한 데이터가 전부 담겨져 온다.
[1] content 속성을 이용하여 응답 전문 얻기
>>> response.content
: 바이너리 형식의 원문 데이터를 반환 받을 수 있다.
[2] text 속성을 이용하여 응답 전문 얻기
>>> response.text
: 바이너리 속성의 원문을 UTF-8로 인코딩된 문자열로 얻어 올 수 있다.
<< 많은 경우 text 속성을 이용하여 원문 데이터를 가져온다. >>
[3] 응답 데이터가 JSON format인 인 경우, json() method를 통해 딕셔너리 객체를 반환 받을 수 있다.
>>> response.json()
: 원문의 데이터를 딕셔너리 형식으로 얻어 올 수 있다.
Method
- GET
[1] 일반적으로 get 함수를 사용하여 해당 주소에 전문을 받아온다.
>>> req = requests.get("http://naver.com/")
[2] parms 옵션을 사용하면 쿼리 스트링을 사전의 형태로 넘길 수 있다.
# https://news.naver.com/main/main.naver?sid1=100
>>> response = requests.get("https://news.naver.com/main/main.naver", params={"sid1": "100"})
[3] 응답에 대한 메타 데이터를 담고 있는 헤더는 headers 속성을 통해 얻을 수 있다.
>>> response.headers
>>> response.headers['Content-Type']
- POST & PUT
POST나 PUT 방식으로 HTTP를 요청할 경우, 요청 전문에 데이터를 담아서 보낸다. ( 이 부분에 대해선 잘 모름 사용해본 적이 없네요.. )
저는 파이썬 웹 크롤링을 공부하면서 requests 라이브러리를 많이 사용하면서 공부하게 된 내용입니다.
파이썬에서 웹 크롤링 뿐만 아니라 HTTP를 다루는 수 많은 부분에 대해서 requests 라이브러리가 사용된다고 하니
기회가 된다면 같이 알아 두면 좋을 것 같습니다 :)
- 끝 -
'Python > Module' 카테고리의 다른 글
[Python] Pandas 라이브러리 - DataFrame (0) | 2022.01.02 |
---|---|
[Python] BeautifulSoup 라이브러리 (4) | 2021.12.31 |