1. 自分の使用しているGoogle Chromeのバージョンを調べる
画像はhttps://www.iijmio.jp/thissite/version より
2. Google Chromeに合った、"chromedriver"というソフトウェアをダウンロードする
-
ここからダウンロードしてください。
-
ダウンロードしたものは、.zip形式になっているので、展開したものの実行形式のものを自分のディレクトリに入れてください。
3. ターミナルを開いて、以下をターミナルで実行
pip install beautifulsoup4 selenium requests
4. 以下のソースコードの"メールアドレス"と"パスワード"を自分のstravaアカウントに合わせて書き換える
gpx.py
import os
import re
import sys
import time
from bs4 import BeautifulSoup
import requests
from glob import glob
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 get_gpx_names():
return glob('*.gpx')
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__":
gpx_names = get_gpx_names()
upload_gpx_to_strava(gpx_names)
5. gpx.pyと同じディレクトリにアップロードしたい.gpxファイルを置く
6. 以下を実行
python gpx.py