yahoo 루트 랩에서 Strava로 자동 데이터 마이그레이션
yahoo 루트 랩에서 Strava로 자동 데이터 마이그레이션
Yahoo의 루트랩은, 2020년 3월로 종료해 버립니다.
서비스가 끝날 때까지 루트 랩에서 gpx 파일을 다운로드하여 Strava에 업로드하고 지금까지 실행 한 루트를 strava에 저장하십시오!
단, 수동으로 일일이 Strava에 업로드하는 것은 번거롭기 때문에, 이하의 방법을 사용해 자동으로 업로드합시다
2020/04.01 추가
루트 랩은 끝났으므로 단순히 .gpx 파일을 Strava에 업로드하고 싶다면 여기을 참조하십시오.
1. 내가 사용하는 Google 크롬 버전을 확인합니다.
이미지는 htps //w w. 좋은 j 미오. jp / te / / ょ r 시온
2. Google 크롬에 맞는 "chromedriver"라는 소프트웨어 다운로드
여기 에서 다운로드하세요.
3. 터미널을 열고 다음을 터미널에서 실행
pip install beautifulsoup4
pip install requests
pip install selenium
4. 아래 소스 코드의 "이메일 주소"와 "비밀번호"를 자신의 strava 계정에 맞게 다시 씁니다.
gpx.py
import os
import re
import sys
import time
from bs4 import BeautifulSoup
import requests
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.binary_location = '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome'
driver = webdriver.Chrome(os.path.join(os.getcwd(), "chromedriver"))
def read_urls():
with open("./urls.txt", "r") as f:
for row in f:
yield row.replace("\n", "")
def download_gpx(urls):
for url in urls:
response = requests.get(url)
html = response.text
soup = BeautifulSoup(html, "html.parser")
gpx_tag = soup.find_all("a", href=re.compile("gpx"))
route_name = soup.find(id="subtitle").string
download_url = gpx_tag[0].get('href')
res = requests.get("https://latlonglab.yahoo.co.jp/route/" + download_url.lstrip("."))
save_name = route_name + ".gpx"
with open(save_name, "wb") as f:
f.write(res.content)
yield save_name
def upload_gpx_to_strava(gpx_names):
for i, gpx_name in enumerate(gpx_names):
driver.get('https://labs.strava.com/gpx-to-route/#12/-122.44503/37.73651')
driver.find_element_by_id("gpxFile").send_keys(os.path.join(os.getcwd(), gpx_name))
time.sleep(15)
if i == 0:
driver.find_element_by_id("oauthButton").click()
driver.switch_to.window(driver.window_handles[-1])
driver.find_element_by_id("email").send_keys("メールアドレス")
driver.find_element_by_id("password").send_keys("パスワード")
login_button = driver.find_element_by_id("login-button")
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
login_button.click()
time.sleep(5)
driver.switch_to.window(driver.window_handles[-1])
driver.find_element_by_id("saveButton").click()
time.sleep(5)
driver.find_element_by_class_name("save-route").click()
driver.find_element_by_id("name").send_keys("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b"+os.path.splitext(os.path.basename(gpx_name))[0])
driver.find_element_by_class_name("reverse").click()
time.sleep(5)
if __name__ == "__main__":
urls = list(read_urls())
gpx_names = download_gpx(urls)
upload_gpx_to_strava(gpx_names)
5. gpx.py와 같은 디렉토리에 다음과 같은 루트 랩에 링크 된 urls.txt를 배치
urls.txt
https://latlonglab.yahoo.co.jp/route/hoge1
https://latlonglab.yahoo.co.jp/route/hoge2
https://latlonglab.yahoo.co.jp/route/hoge3
...
6. 다음을 실행
python gpx.py
Reference
이 문제에 관하여(yahoo 루트 랩에서 Strava로 자동 데이터 마이그레이션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/memento10/items/3511ea8028573e2dcf1f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)