관리 메뉴

JIHYUN JEONG

[데이터분석/크롤링] (1) 데이터분석 프로젝트 라임 스쿠터/킥보드(lime scooter) 데이터수집 본문

Data Science/Data Analysis

[데이터분석/크롤링] (1) 데이터분석 프로젝트 라임 스쿠터/킥보드(lime scooter) 데이터수집

StopHyun 2019. 12. 5. 08:20

데이터를 수집해서 라임 스쿠터/킥보드(lime scooter)의 데이터분석 프로젝트를 진행해보겠습니다.

 

라임에 대해서 간단하게 설명하자면 글로벌 전동킥보드 강자로서 2017년 미국 캘리포니아에 설립된 라임은 현재 스타트업 기업이지만 기업

가치가 1조원이 넘는 대표적인 ‘유니콘 기업’입니다.

 

http://www.greenpostkorea.co.kr/news/articleView.html?idxno=109689

 

글로벌 전동킥보드 강자 '라임', 한국 상륙

[그린포스트코리아 이재형 기자] 올해 서울시내에서만 1만대까지 확대되는 국내 전동킥보드 공유서비스 시장에 새로운 강자가 나타났다. 누적 탑승 1억 회를 기록한 글로벌 마이크로모빌리티(소형 이동수단) 기업...

www.greenpostkorea.co.kr

 

그리고 전동킥보드 데이터를 분석해보자는 이유는

 

1. 전동 킥보드의 사용하는 패턴을 분석해 사용 동기 요인 및 수요예측을 해보자는 목적

2. 신도시 교통난의 해결 방법을 위한 모색

3. 쥬서(킥보드 충전을 위한 사람)들에게 배터리 사용 패턴을 보고 어떤 도움을 줄 수 있는 앱을 만들 수 있을지

4. 대학원 논문에 활용해보자

 

위와 같은 4가지 이유로 시작했지만 결과는 데이터 수집 후 분석을 해보아야 하는 문제이니만큼 재밌게 분석해볼려고 합니다.

Open API가 있으면 좋겠지만 공식적으로 전동 스쿠터 업체들이 Open API를 열어두진 않은 상태라 아래 github를 참고하여 데이터를 수집해보았습니다.

 

일딴 git에 나왔있는대로 쭈욱 한번 살펴봅시다.

 

https://github.com/ubahnverleih/WoBike/blob/master/Lime.md

 

ubahnverleih/WoBike

Documentation of Bike Sharing APIs 🚴🛴🛵. Contribute to ubahnverleih/WoBike development by creating an account on GitHub.

github.com

 

Methods를 살펴보며 간단하게 login 할 수 있는 방법이 2개가 있는데요. 우선 저는 SMS 로 진행했습니다.

 

1. 가장 먼저 해야 할 일은 Lime 앱을 설치하고 회원 가입부터 해서 계정을 가지고 있어야 합니다.

 

 

아래 cURL 커맨드를 실행해서 본인의 핸드폰 번호로 OTP code를 받습니다.

1
2
3
4
5
curl --request POST \
  --cookie-jar - \
  --header 'Content-Type: application/json' \
  --data '{"login_code": "123456", "phone": "+821012345678"}'

 

문자로 OTP code를 다 받았으면  아래처럼 받았는 6자리 코드를 넣고 cURL을 실행합니다. 

 

1
2
3
4
5
curl --request POST \
  --cookie-jar - \
  --header 'Content-Type: application/json' \
  --data '{"login_code": "123456", "phone": "+821012345678"}'

 

 

 

 

자 그럼 받은 토큰 값과, 쿠키 값을 바탕으로 아래에 Mandatory를 아래와 같이 넣고 cURL을 실행합니다.

 

 

 

 

[여기가 실행하는 cURL] 

1
2
3
4
curl --request GET \
  --header 'authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VyX3Rva2VdfdfdfdfdfdfdfuIjoiSzM0WlVPRlFCWDdOMiIsImxvZ2luX2NvdW50IjoyfQ.x6QRERZ9S0KITzHI8wXFhITlXb4cWs_MXttRWX2ZO4o' \
  --cookie '_limebike-web_session=Z2RnYWZlUi9Ybzd1cUpBRC9UcnBadfdfdfdfdfdfdfelFsVjV5aE9MYnV4QldLL1p0ZzNKNmxQL3A1dTRLb3hXUXBmMzlzM2NQU3FmVXI2M1BWQmlEb1VWTm1yWmRaYkVsTVZ3Yjg2MnB1dXh3QWp5TDRYb1puL0ZrQmg2TDFzbThabUZoYUFQNlNHbHN6Y2l1bVR0YXZOSmFvalVDWHI4SFk1dVpUbVY5TDVmb3BvUGR3L3ZBbndNcXQzV2htQi9rUHBWODFDV2VTZnk5OG5peHFMclhkVVlUeTBXajRxT05aYnBWckFTcGxZZ1haeWtOcW9zNHhLY3FjYUhnTk1xL09CU0tBOGJmRkF3WWpHU1FmZTdlSCtEQlM4VlQ4T0l3RVZ5UWJma1lQY0V5cDRBN1YwMXkyZEhOSy9TU0RSdUZiYUlrYTdkdWh5aVNlL211V3hMbmszMk90bEQwZ3RnPT0tLUF4N3dzRG9xT0xXZnZreVlOR1NaL3c9PQ%3D%3D--21a30cf41170d4da4501b4cf0382ae53d8ee1ba7'

 

정상적으로 Request를 했다면 아래와 같이 결과 값이 보이고 쭈욱 아래로 내려보면

 

 

여기 처럼 bikes의 정보를 실시간으로 확인 할 수 있습니다. 

 

 

 

자 중요한건 여기 입니다. Auth 정보가 필요합니다. Auth 정보가 필요하고 해당 위치에 lat, lng 에 해당하는 위도와 경도가 필요합니다. 어렵게 느껴지시나요? 아닙니다. 천천히 하나하나 살펴보도록 합시다. 우선 아래 Mandatory라고 적혀져 있는 부분은 쓱 눈여겨 봅시다.

 

자 이렇게 라임 스쿠터/킥보드(lime scooter) 데이터수집을 실시간으로 할 수 있었습니다. 그렇다면 이렇게 실시간으로 모은 데이터를 어떻게 깔끔하게 Pandas(판다스)를 써서 전처리를 할지는 다음 시간에 알아보도록 하겠습니다. 

Comments