.gpx 파일을 Strava에 자동으로 업로드하는 방법

9324 단어 파이썬셀레늄

1. 내가 사용하는 Google 크롬 버전을 확인합니다.



chrome
이미지는 htps //w w. 좋은 j 미오. jp / te / / ょ r 시온

2. Google 크롬에 맞는 "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

    좋은 웹페이지 즐겨찾기