これは、特定の給与明細Webサイト(palma-svc)からデータを自動取得し、ローカルにCSVとして保存・集計するためのPythonスクリプトです。 UIの表示・操作には Streamlit を使用しています。
V6.2にてID/PWの暗号化に対応しました。 V6.3では、暗号化キーにPC固有のMACアドレスを使用する方式に変更し、キー設定の手間を不要にしました。
- 給与明細サイトへの自動ログイン
- ID/PWは初回成功時に
core/.envに自動で暗号化して保存されます。 - ログインURLのパラメータ (
c=...) もcore/.envで管理されます。 - 指定年または全期間(2019年~)の明細データ(支給額、時間外、有給情報など)の自動取得
- 取得した全データを
output/年間サマリー_全期間.csvに蓄積保存 - 指定した年の「暦年サマリー(1-12月)」および「年度時間外(4-翌3月)」の集計・表示
- Python 3.12 推奨
- (注意: Python 3.14以降ではStreamlitの依存関係の問題で動作しないことが確認されています)
- Pythonインストール時に**「Add Python to PATH」**(または「Add python.exe to PATH」)にチェックを入れる必要があります。
-
リポジトリのクローン
git clone https://github.com/secta113/get_work_result_for_st.git cd get_work_result_for_st -
依存ライブラリのインストール
coreフォルダに移動し、setup.batを実行するか、ターミナルで直接pipコマンドを実行します。cd core pip install -r requirements.txt(主なライブラリ:
streamlit,requests,beautifulsoup4,cryptography,python-dotenv) -
.envファイルのセットアップcoreフォルダに.envファイルを新規作成し、以下の内容を記述します。MY_LOGIN_ID="" MY_PASSWORD="" LOGIN_COMPANY_CODE="your_campany_code"
(
LOGIN_COMPANY_CODEはログインページの?c=パラメータです)
下記のどちらかをご利用ください。
-
batファイルで実行 (Windows)
- プロジェクトのルートフォルダ(
coreの親)にあるapprun.batをダブルクリックします。
- プロジェクトのルートフォルダ(
-
コマンドで実行 (Mac / Linux / Windows)
- ターミナルで
coreフォルダに移動し、streamlitコマンドを実行します。
cd core streamlit run app.py - ターミナルで
自動的にブラウザが起動します。画面でID/PWを入力し、「実行」ボタンを押してください。
- PC固有の暗号化 (マシンロック)
- 本ツールは、ID/PWを暗号化する際、PC固有のMACアドレスをキーとして使用します。
- これにより、
coreフォルダ一式(.envを含む)を別のPCにコピーしても、暗号化されたID/PWを復号できず、動作しません。 - PCを移行(買い替え)する際は、新しいPCで再度
setup.batを実行し、初回からログインし直す必要があります(古い.envは引き継げません)。
- ランダムMACアドレスに関する注意
- Windows 10/11 や一部のノートPCでは、Wi-Fi接続時に「ランダムなハードウェアアドレス」機能が有効になっている場合があります。
- この機能が有効だと、PCを再起動するたびにMACアドレスが変わり、
.envが復号できなくなる可能性があります。 - もしログインが頻繁に失敗する(
.envが読めなくなる)場合は、OSのWi-Fi設定で「ランダムなハードウェアアドレス」をオフにしてから、再度ログインし直してください。
project_root/
├── apprun.bat (▲ 実行ファイル)
├── manual.html (利用者向け手順書)
├── README.md (このファイル)
│
├── output/ (※自動生成)
│ ├── 年間サマリー_全期間.csv
│ ├── app_log.log
│ └── debug_requests_network_log.txt
│
└── core/ (★ アプリ本体)
├── setup.bat (▲ 初回セットアップ用)
├── app.py (Streamlit UI本体)
├── main_controller.py (メイン処理フロー)
├── network_handler.py (通信・パース処理)
├── csv_handler.py (CSV読込・保存)
├── summary_calculator.py (集計処理)
├── date_utils.py (対象月生成)
├── requirements.txt (依存ライブラリ)
├── encryption_utils.py (暗号化ライブラリ)
└── .env ※ID/PW(暗号化), CompanyCode 保存先)
- 本ツールは、個人の利用範囲におけるデータ集計の効率化を目的としています。
- ツールの使用にあたっては、対象Webサイト(palma-svc)の利用規約を遵守してください。
- 本ツールの使用によって生じたいかなる直接的または間接的な損害についても、開発者は一切の責任を負いません。自己責任でご利用ください。