오답노트

[requests] Python requests 패키지 설명과 GET, POST 본문

Python/Web Crawling

[requests] Python requests 패키지 설명과 GET, POST

권멋져 2022. 8. 5. 21:22

requests 패키지

REST 방식을 사용할 수 있게 해주는 파이썬 패키지이다. 

요약하면 URL로 정보를 요청해서 데이터를 받을 수 있다.

 

get()

HTTP 메소드 GET을 사용하는 함수다.

GET의 특징은 URL에 파라미터가 들어간다는 점이다.

URL로만으로 데이터를 가져오지 못하는 경우가 있는데, 이 때는 headers 속성에 referer 와 user-agent를 딕셔너리로 만들어 입력한다.

import requests

headers = {
    "referer": "https://www.op.gg/champions",
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36"
}
response = requests.get(url,headers = headers)
response.json()['data']


'''
[{'id': 1,
  'key': 'Annie',
  'name': '애니',
  'image_url': 'https://opgg-static.akamaized.net/images/lol/champion/Annie.png',
  ...
'''

 

post()

HTTP 메소드 POST을 사용하는 함수.

POST의 특징은 body에 파라미터가 들어간다는 점이다.

 

url = "https://openapi.naver.com/v1/papago/n2mt"

header = {
    "Content-Type": "application/json",
    "X-Naver-Client-Id":  #{애플리케이션 등록 시 발급받은 클라이언트 아이디 값}
    "X-Naver-Client-Secret":  #{애플리케이션 등록 시 발급받은 클라이언트 시크릿 값}
}

params = {
    "source" : "ko",
    "target" : "en",
    "text" : "안녕, 세상"
    
}

response = requests.post(url,json.dumps(params),headers = header)
response.json()

'''

{'message': {'result': {'srcLangType': 'ko',
   'tarLangType': 'en',
   'translatedText': 'Hello, world',
   'engineType': 'N2MT',
   'pivot': None,
   'dict': None,
   'tarDict': None},
  '@type': 'response',
  '@service': 'naverservice.nmt.proxy',
  '@version': '1.0.0'}}
  
 '''