「あすけんの記録がデータとしてほしい。」
毎日の体重や体脂肪率の記録が、10年分くらいアプリの中に残っています。ただ、あすけんは直近2年分くらいしか見られないので長期間の変化がちょっと見にくい…
そう思ったのですが、あすけんにはデータのエクスポート機能がなかった!!!
しかたがないので、ブラウザを自動操作してデータを抜き出すPythonスクリプト を書きました。
私がやりたかったことはこれで実現できたので、同じように「過去データが欲しい」という人のためにコードを置いておきます。
やりたかったこと
- 2017年から現在までの「体重」「体脂肪率」を全取得したい。
- 手作業でポチポチ書き写すのは無理だし、やだ。
- 取得したデータはCSV形式(→スプレッドシートに書き込みたいから)
やったこと(解決方法)
Pythonを使ってブラウザ操作でデータを取得→CSV作成までをおこない、手作業でCSVをスプレッドシートにインポートしました。結果はこんな感じ。

体重と体脂肪率は秘密ですが、数年単位のグラフ化も即作成可能でした。
解決したコード(Python + Selenium)
PythonとSeleniumを使って、Chromeブラウザを自動操作する方法で解決しました。
ログインを手動で済ませれば、あとはスクリプトが勝手にページを巡回して、データがある日だけをCSVに保存してくれます。
準備1.Pythonのインストール
Pythonのインストールが必要なので、もし使ったことがない場合は公式サイトからPythonをインストールしましょう。

公式サイトに[Download Python install manager]というボタンを押してインストールできます。
Pythonがインストールできているかわからない人は、バージョン確認を実行します。
python --version

このようにバージョンが表示されたらOKです。
インストールする際の設定で「Add Python to PATH」をONにする必要があるので忘れずに。

忘れたら、設定から変更します。

準備2.ライブラリをインストールする
Pythonが動く環境で、必要なライブラリを入れます。
pip install selenium webdriver_manager
これを実行するとずらずらと文字が書かれますが、終わるまで待ちます。
準備3.コードを保存する(asken_auto.py)
以下のコードを asken_auto.py という名前で保存します。
テキストファイルを開く>下のコードをコピペする>>名前を付けて保存>>拡張子を消して「asken_auto.py」で保存
START_DATE (開始日)、END_DATE (終了日)は、ご自身の取得したい日付に変更してください。
import csv
import time
import random
from datetime import datetime, timedelta
# ブラウザ自動操作用ライブラリ
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
from selenium.common.exceptions import WebDriverException
# ==========================================
# 設定エリア
# ==========================================
# 取得したい期間(↓ここを変更)
START_DATE = '2017-01-01'
END_DATE = '2026-01-02'
# 保存するファイル名
OUTPUT_FILE = 'asken_history.csv'
# ==========================================
def main():
print("ブラウザを起動しています...")
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
# 1. ログイン画面を開く
driver.get("https://www.asken.jp/login")
print("\n" + "="*50)
print("【重要】手動でログインしてください!")
print("ログイン完了後、この黒い画面に戻って【Enterキー】を押してください。")
print("="*50 + "\n")
# ログイン待ち
input("ログイン完了後にここをクリックして、Enterキーを押してください >> ")
print(f"データ取得を開始します... ({START_DATE} 〜 {END_DATE})")
# ファイルを開く
with open(OUTPUT_FILE, 'w', newline='', encoding='utf-8-sig') as f:
writer = csv.writer(f)
writer.writerow(['日付', '体重(kg)', '体脂肪率(%)'])
f.flush() # ヘッダーを即時保存
current_date = datetime.strptime(START_DATE, '%Y-%m-%d')
end_date = datetime.strptime(END_DATE, '%Y-%m-%d')
while current_date <= end_date:
date_str = current_date.strftime('%Y-%m-%d')
# その日の記録ページへ直接ジャンプ
target_url = f"https://www.asken.jp/wsp/comment/{date_str}"
try:
driver.get(target_url)
# 体重と体脂肪の入力欄を取得
weights = driver.find_elements(By.NAME, "data[Body][weight]")
fats = driver.find_elements(By.NAME, "data[Body][body_fat]")
val_weight = ""
val_fat = ""
if weights: val_weight = weights[0].get_attribute("value")
if fats: val_fat = fats[0].get_attribute("value")
# データがある場合のみCSVに書き込み
if val_weight:
writer.writerow([date_str, val_weight, val_fat])
f.flush() # 即時保存(PCが落ちてもデータが残るように)
print(f"[{date_str}] 体重: {val_weight}kg, 体脂肪: {val_fat}%")
else:
# データがない日はドットを表示
print(".", end="", flush=True)
except WebDriverException:
print(f"\n[FATAL] ブラウザが閉じられました。処理を終了します。")
break
except Exception as e:
print(f"\n[{date_str}] エラー: {e}")
current_date += timedelta(days=1)
# サーバー負荷軽減のため少し待機
time.sleep(random.uniform(0.5, 1.0))
print(f"\n終了しました。")
try:
driver.quit()
except:
pass
if __name__ == "__main__":
main()
実行
1. コマンドで python asken_auto.py を実行

2. Chromeが立ち上がるので、手動でログインする。

3. ログインしたらターミナル(黒い画面)に戻ってEnterを押す。

あとは完了までPCが落ちないように気を付けつつ、放置しておけばCSVファイルが出来上がります。
データの取得中はこのようにページを順々に開いてデータを取得します。
これは3倍速なので、この1/3の速度でページが自動で切り替わってデータを取ります。
「終了しました」と表示されたら、CSVが同フォルダに格納されているので、このCSVはスプレッドシートに書き込んでもいいし、ちがうファイルに書き込んでもいいし。
処理中はPCがスリープしないようにしてください。私は3時間くらい実行に時間がかかりました。
失敗談:ちなみに…Claudeにブラウザ操作を頼んだら爆死した。
ここからは余談ですが、最初はClaude Computer Useにブラウザ操作を任せれば、簡単だしいけるだろ。と思っていたんです。
が、実際にやってみたら、まったくうまくいきませんでした。
まず、AIが「画面を見て、次の月へボタンを押す」という動作が人間と同じくらいの速度なので、8年分(約100ヶ月)を巡回するのにものすごく時間がかかり。
さらに、AIがスプレッドシートを開いて、セルをクリックしてキーボードで数字を手入力し始めた時に、これは果てしなく時間がかかると確信。
極めつけに、この程度の操作でトークンをざぶざぶ消費していったので、1か月分くらい書き写して諦めました。API従量課金だったらと思うとゾッとします。
単純なデータ収集には、やっぱりPythonスクリプトが確実で早かった。
もしあすけんのデータが欲しくて困っている方がいたら、上のコードを使ってみてください。

