Published: Jan 13, 2020 by Dev-hwon
API에 대한 정보는 Data Engineering 카테고리의 API란 포스트 참고
requests 모듈
- http request/response를 위한 모듈
- HTTP method를 메소드 명으로 사용하여 request 요청
get 요청하기
- http get 요청하기
- query parameter 이용하여 데이터 전달하기
url = 'https://hwk0702.github.io/'
resp = requests.get(url)
post 요청하기
- http post 요청하기
- post data 이용하여 데이터 전달하기
url = 'https://hwk0702.github.io/'
datas = {
'id': 'abcd'
'pwd': '1234'
}
resp = requests.post(url, data=datas)
HTTP header 데이터 이용하기
- header 데이터 구성하기
- header 데이터 전달하기
url = 'https://hwk0702.github.io/'
headers = {
'user-agent': Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36
}
resp = requests.get(url, header=headers)
HTTP response 처리하기
- response 객체의 이해
- status_code 확인하기
- text 속성 확인하기
url = 'https://hwk0702.github.io/'
resp = requests.get(url)
if resp.status_code == 200:
resp.text
else:
print('error')
API 사용하기
- API 사용 요청 / 키 발급
- API 문서(specification) 확인
- API 테스트 및 개발
Endpoint 확인하기
- API가 서비스 되는 서버의 IP 혹은 domain wnth
key 값 확인하기
- 서비스 호출 트래킹할 목적이나 악의적인 사용을 금지할 목적으로 주로 사용
parameter 확인하기
- API 호출에 필요한 parameter 값 확인 및 구성
요청 및 Response 확인
- request 모듈을 활용하여 API 호출
- response 확인하여 원하는 정보 추출
- json 데이터의 경우, python dictionary로 변경하여 사용가능
API 활용 예시
- 공공 데이터 포털에서 관광자원통계서비스 활용
- urllib.request 모듈 사용
import urllib.request
import json
ym = '201201'
sido = urllib.parse.quote('서울특별시')
gungu = urllib.parse.quote('종로구')
res_nm = urllib.parse.quote('경복궁')
page_no = '1'
num_of_rows = '100'
service_key = 'YOUR SERVICE_KEY'
url = 'YOUR URL'
url = url + "&YM=" + ym
url = url + "&SIDO=" + sido
url = url + "&GUNGU=" + gungu
url = url + "&RES_NM=" + res_nm
url = url + "&pageNo=" + page_no
url = url + "&numOfRows=" + num_of_rows
url = url + "&serviceKey=" + service_key
req = urllib.request.Request(url)
response = urllib.request.urlopen(req)
j = json.loads(response.read().decode('utf-8'))
print(ym, j['response']['body']['items']['item']['csForCnt'], j['response']['body']['items']['item']['csNatCnt'])