[Python] requests 라이브러리

2021. 12. 30. 15:13·Python/Module

- 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 라이브러리  (6) 2021.12.31
'Python/Module' 카테고리의 다른 글
  • [Python] Pandas 라이브러리 - DataFrame
  • [Python] BeautifulSoup 라이브러리
halfcodx
halfcodx
iOS, Flutter Developer
  • halfcodx
    Mins_Programming
    halfcodx
  • 전체
    오늘
    어제
    • 분류 전체보기 (28)
      • My App (1)
        • NostelgiAlbum (0)
        • Ro_ad (1)
        • Growith (0)
      • Retrospect (2)
      • iOS (9)
        • iOS (6)
        • Swift (2)
      • Python (5)
        • Module (3)
        • Knowledge (2)
      • Flutter (10)
        • Basic Knowledge (10)
        • Implementation (0)
  • 블로그 메뉴

    • Home
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    DART
    파이썬
    combine 이란
    ios combine
    오블완
    combine
    requests
    티스토리챌린지
    Python
    Flutter
  • hELLO· Designed By정상우.v4.10.1
halfcodx
[Python] requests 라이브러리
상단으로

티스토리툴바