라쿠텐 여행 API를 3분에 두드려 보았다♪

10777 단어 파이썬api

API란?



타사가 제공하는 서비스 내의 "정보"or*"기능"*을 취급할 수 있도록 하는 구조



0:Rakuten Developers에 액세스



①Rakuten Developers에 로그인
(라쿠텐 계정이 없는 분은 등록을 부탁합니다.)

② "앱 ID"를 발행





③ "API 일람"을 클릭

④ "라쿠텐 여행계 API"안에 있는 "라쿠텐 여행 시설 검색 API"를 클릭




위 그림의 페이지에 라쿠텐 트래블 API의 사양이 세세하게 쓰여져 있으므로, 대략 눈을 통해 봐 주세요.
(잘 모르는 분은 아래 소스 코드를보고 감각을 잡아보십시오!)

1: 소스 코드


import pandas as pd
import requests
REQUEST_URL = "https://app.rakuten.co.jp/services/api/Travel/SimpleHotelSearch/20170426"
#0-②でコピーしたIDを貼り付けてください
APP_ID = "????????????????????"

이번은 일본·오키나와·나하시에 있는 시설을 검색해 보고 싶습니다.
params = {
    "format":"json",
    "largeClassCode":"japan",
    "middleClassCode":"okinawa",
    "smallClassCode":"nahashi",
    "applicationId":APP_ID
}

res = requests.get(REQUEST_URL, params)

print(res)

여기서
라고 출력되면 요청에 대한 응답이 성공합니다!

다음으로 얻은 json 형식의 응답을 살펴 보겠습니다.
print(result)



위 그림에서,
· 전체 페이지 수는 15 페이지
・이번에는 첫 페이지만 획득
・이번은 1~30의 시설 정보를 취득
(이 소스 코드에서는 page를 지정하지 않으므로 1페이지째만 취득하게 되어 있습니다.)

이상에서,
"15 페이지의 정보"가 있음을 알았으므로 모든 것을 얻고 데이터 프레임에 저장합니다!
def rakuten_api():
    df = pd.DataFrame()
    index_num = 0

    #ページ数(1~15ページ)
    for page in range(1,16):    

        params = {
        "format":"json",
        "largeClassCode":"japan",
        "middleClassCode":"okinawa",
        "smallClassCode":"nahashi",
        "page": page,
        "applicationId":APP_ID
        }

        res = requests.get(REQUEST_URL, params)

        #レスポンスの中身を取得
        result = res.json()

        hotels = result["hotels"]

        for hotel in hotels:
            hotel_info = hotel["hotel"][0]["hotelBasicInfo"]
            _df = pd.DataFrame(hotel_info, index=[index_num])
            index_num+=1
            df = df.append(_df)

    return df

df = rakuten_api()

이제 이전 15 페이지의 시설 정보를 데이터 프레임에 저장할 수있었습니다!

이제 데이터 프레임에 저장된 열 이름 목록을 살펴 보겠습니다.
print(df.columns)
出力結果>>>
Index(['hotelNo', 'hotelName', 'hotelInformationUrl', 'planListUrl',
       'dpPlanListUrl', 'reviewUrl', 'hotelKanaName', 'hotelSpecial',
       'hotelMinCharge', 'latitude', 'longitude', 'postalCode', 'address1',
       'address2', 'telephoneNo', 'faxNo', 'access', 'parkingInformation',
       'nearestStation', 'hotelImageUrl', 'hotelThumbnailUrl', 'roomImageUrl',
       'roomThumbnailUrl', 'hotelMapImageUrl', 'reviewCount', 'reviewAverage',
       'userReview'],
      dtype='object')

여기에서 자신이 필요한 열 이름만 추출합니다.
그리고 csv 파일에 출력시켜 완성입니다!!
df[['hotelName','hotelInformationUrl','hotelMinCharge','telephoneNo','reviewAverage']].to_csv("hotel.csv",index=False)



2:마지막으로



이번에는 라쿠텐 여행계 API를 이용했습니다만,
라쿠텐 북스계 API나 라쿠텐 레시피계 API등도 풍부하기 때문에, 그것들을 조합해 자신 취향의 어플리케이션도 만들 수 있을 것 같습니다!

그 때에는 또, 기사로 하고 싶습니다!!

좋은 웹페이지 즐겨찾기