kintoneの一日のAPIリクエスト数を監視するプログラム - Python


定義

kintoneの使用頻度が高そうな二つのアプリの一日のAPIリクエスト数を毎朝8:55分にExcelに保存する

モジュールのインポート

import os, time, datetime
from selenium import webdriver
from selenium.webdriver.common.by import By
import openpyxl as excel

ログインしてアプリ管理ページに飛ぶまで

driver = webdriver.Chrome()
driver.get("https://your-domain.cybozu.com/k/admin/app/index")    
usr = driver.find_element_by_name("username")
usr.send_keys("your-user-name")
pwd = driver.find_element_by_name("password")
pwd.send_keys("your-password")
pwd.submit()
time.sleep(3)

テーブルの中を取得

テーブルの値は、<tr>(行ごと)のループの中で<td>の配列のインデックスを指定することで得られる。
tds[0]がアプリID、tds[8]が一日のAPIリクエスト数。report_obj に値を保存する。

tableElem = driver.find_element_by_class_name("gaia-admin-app-table-body")
trs = tableElem.find_elements_by_tag_name("tr")

report_obj = {"your-application-name1": "", "your-application-name1": ""}
for i in range(0, len(trs)):
    tds = trs[i].find_elements_by_tag_name("td")
    if tds[0].text == "1": # your-application-id1
        report_obj["your-application-name1"] = tds[8].text
    elif tds[0].text == "2": # your-application-id1
        report_obj["your-application-name2"] = tds[8].text

Excelファイルに保存する

book = excel.load_workbook(r"D:\your-folder-path\your-excel-file-name.xlsx") # rにすることでバックスラッシュをリテラルで保つ
sheet = book.active
next_row = sheet.max_row + 1

# 日時
sheet.cell(row = next_row, column = 2, value = datetime.datetime.now())
# 曜日
weekday = datetime.date.today().weekday()
jaWds = ["月", "火", "水", "木", "金", "土", "日"]
sheet.cell(row = next_row, column = 3, value = jaWds[weekday])
# your-application1
sheet.cell(row = next_row, column = 4, value = int(report_obj["your-application-name1"]))
# your-application2
sheet.cell(row = next_row, column = 5, value = int(report_obj["your-application-name2"]))

book.save(r"D:\your-folder-path\your-excel-file-name.xlsx")
print("ok")

タスクスケジューラー

このファイルをタスクスケジューラーに登録して朝8:55分に実行させる。