주제
Requests를 사용하여 웹사이트의 데이터를 추출하는 방법과 json으로 응답받아 데이터프레임으로 로드하는 방법을 배웠다.
Application Programming Interfaces(API)
흔히들 "API 문서 참고해라" 이런 말을 하는데, API가 정확히 무엇일까?
응용 프로그램 끼리 통신할 수 있도록 정의된 방법이다.
프로그래머가 API를 통해 응용프로그램에서 데이터를 가져올 수 있다.
Requests
파이썬에서 requests 라이브러리를 사용하여 모든 URL에서 데이터를 주고 받을 수 있다.
requests.get()
으로 URL에서 데이터를 가져온다.
requests.get()
requests.get(url주소)
형태로 사용하며 유용한 파라미터를 사용할 수 있다.
params
: 매개 변수 이름 및 값 dictionary를 전달하여 API 요청을 커스터마이징 할 수 있다.
headers
: 이름과 값의 dictionary를 받고, 사용중인 API에 사용자 인증 키가 필요한 경우 헤더로 전달된다.
- 반환값 : 데이터와 메타 데이터를 포함한
response
객체- 데이터만 받고 싶다면
response.json()
을 사용한다.
- 데이터만 받고 싶다면
response.json()
- dictionary 형태로 반환한다.
read_json()
을 그냥 사용하면 딕셔너리 형태의 json 파일이 아니라서 에러가 발생한다. 따라서pd.DataFrame()
을 사용하여 데이터프레임에 데이터를 로드해야한다.
예제를 위해 Yelp를 사용한다.
import requests
import pandas as pd
#응답 요청할 url
api_url = "https://api.yelp.com/v3/businesses/search"
# 파라미터
params = {"term" : "bookstore",
"location" : "San Francisco"}
# 헤더 설정
header = {"Authorization": "Bearer {}".format(api_key)}
response = requests.get(api_url,
params=params,
header=header)
data = response.json()
print(data)
bookstores = pd.DataFrame(data["businesses"])
Uploaded by Notion2Tistory v1.1.0