파이썬을 활용한 데이터 수집
1. Api란?
“응용 프로그램에서 사용할 수 있도록 데이터를 가져올 수 있는 접점.”
- 만약 데이터 분석을 위해 서버의 데이터가 필요한 경우라면 직접 서버로 요청을 보내 실시간 데이터를 확보해야 한다.
- 다음 사이트에서 크롬 브라우저를 통해 할 일 리스트, 유저 등 특정 더미 데이터를 받아올 수 있다. 데이터를 받아오는 방법은 해당 URL을 크롬 브라우저의 주소창에 기입 후 엔터를 누르면 되는데, 크롬 브라우저는 해당 URL에 요청을 하여 데이터를 받아오는 작업을 수행한다.
JSONPlaceholder - Free Fake REST API
{JSON} Placeholder Free fake and reliable API for testing and prototyping. Powered by JSON Server + LowDB. Serving ~3 billion requests each month.
jsonplaceholder.typicode.com
크롬 브라우저로 데이터 받아오기
크롬 확장 프로그램 중 JSON Viewer를 우선 하나 선택 및 추가한다.
- 크롬 브라우저를 활용하여 서버에 요청을 보내고 데이터를 응답받을 수 있습니다.
- 데이터마다 자료의 구조가 상이함에 주목한다.
2. API Key
- 특정 서버는 인증된 사용자에게만 데이터를 제공하기도 하는데, 이 때 활용 되는 것이 API Key 이다. 양질의 데이터를 제공하는 많은 서버는 API Key 없이는 데이터를 받아갈 수 없다.
- API Key는 유료거나, 무료인 경우 한도가 정해져 있는 것이 일반적이다.
참고 실습 : 영화 데이터 사이트 TMDB
Getting Started
Welcome to version 3 of The Movie Database (TMDB) API. This is where you will find the definitive list of currently available methods for our movie, tv, actor and image API.
developer.themoviedb.org
위 사이트에 회원가입 후 API Key를 발급받을 수 있다.
TMDB 영화 사이트 요청 예시코드
https://api.themoviedb.org/3/movie/popular?api_key=d007df33e3f03e1148dcaee79c3de63c&language=ko-Kr
브라우저로 API Key 보내기
“어떻게 API Key까지 같이 서버에 요청을 보낼 수 있을 것인가?”
- 만약 책상을 쿠팡에 검색해보면, 내가 검색한 데이터가 URL뒤쪽에 붙어 가는것을 확인할 수 있다.
- ?를 기점으로 key=value쌍으로 이루어진 추가 데이터를 붙여 같이 서버에 요청을 보낼 수 있는데, 이 부분에 API Key를 담아서 보낼 수 있다.
3. Request 모듈 활용
브라우저 없이 파이썬 만으로 서버에 직접 요청을 보내 결과를 받아올 수 있는 방법
- 파이썬의 모듈 스토어인 pip를 통해 요청 모듈을 받으면 해당 모듈을 이용하여 서버에 요청을 보내는 로직을 사용할 수 있습니다.
1. 우선, 터미널을 통해 requests 모듈을 다운받는다.
pip install requests
2. 이후 requests 모듈이 잘 받아졌는지 확인한다.
pip list
3. requests 모듈을 활용하여 TMDB 사이트의 인기 영화 데이터를 가져와본다.
import requests # 모듈 import
import pprint # 출력 형식 조정 내장 모듈 'Pretty Print'
API_KEY = 'd007df33e3f03e1148dcaee79c3de63c' # API Key
URL = 'https://api.themoviedb.org/3' # Base URL
path = '/movie/popular' # 인기 영화
# 딕셔너리로 구조화 된 부가 정보들
infos = {
'api_key': f'{API_KEY}',
'language': 'ko',
'page': 1
}
res = requests.get(URL+path, params=infos) # get 메서드 안 인자로 전달
py_res = res.json() # 파이썬 파싱
pprint.pprint(py_res) # 최종 결과
'Python' 카테고리의 다른 글
객체지향 프로그래밍(OOP) (0) | 2024.04.07 |
---|---|
이중 for문과 이차원 리스트 (1) | 2024.04.07 |
모듈 (0) | 2024.03.31 |
파이썬 메서드와 내장함수 (1) | 2024.03.31 |
함수(Function) (0) | 2024.03.31 |