loader image

Python freeeに自動ログインしてCSV upload

#
#freeeサイトへログイン&CSVアップロード
#

import time
import json
from datetime import datetime, timedelta
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec

# 設定ファイルからログイン情報を取得
login_info = json.load(open("login_info.json", "r", encoding="utf-8"))

# ログインサイト名
site_name = "freee"

# ログイン画面URL
url_login = login_info[site_name]["url"]

# ユーザー名とパスワードの指定
USER = login_info[site_name]["id"]
PASS = login_info[site_name]["pass"]

# chromeを起動する
browser = webdriver.Chrome()

# ログイン画面取得
browser.get(url_login)

# 入力
e = browser.find_element_by_id("user_email")
e.clear()
e.send_keys(USER)
e = browser.find_element_by_name("password")
e.clear()e.send_keys(PASS)

# ログイン
button = browser.find_element_by_name("commit")button.click()

# ページロード完了まで待機
time.sleep(3)

#楽天APIに移動
c = browser.find_element_by_class_name("walletable___StyledA-sc-3etvmj-3")
c.click()

# ページロード完了まで待機
time.sleep(3)

#明細アップロードに移動
c = browser.find_element_by_id("wtxns-upload")
c.click()

#ファイルを選択し入力
now = datetime.now()
this_month_first_day = now.replace(day=1)
last_month_last_day = this_month_first_day - timedelta(days=1)
last_month_first_day = last_month_last_day.replace(day=1)

from1 = str(last_month_first_day).replace('-','')[:8]
to1 = str(last_month_last_day).replace('-','')[:8]

#ファイルのあるフォルダを指定
browser.find_element_by_id("ofx").send_keys('ファイルのあるフォルダ\\' + from1 + '_'+ to1 + '.csv');

#次へをクリック
c = browser.find_element_by_name("commit")c.click()

# 処理終了
browser.quit()


コメント

タイトルとURLをコピーしました