xk_NJU:南京大学选课自动化脚本

Tool

概要

xk_NJUは、南京大学のオンライン選課システムに対応したPythonベースの自動化スクリプトです。Chromeブラウザを用いて動作し、ユーザーがid.txtとpassword.txtに学籍番号とパスワードを記入することで、自動的にログインし、あらかじめChromeのブックマークに登録した目標講義を選択します。requirements.txtで指定された環境をpipで整え、実行はrun.pyから行います。動作中に問題が発生した場合はChromeを再起動し再実行が可能です。選課間隔はprocessor.pyの98行目のsleep関数で調整可能で、技術的な検証とコミュニケーションを目的として開発されています。

GitHub

リポジトリの統計情報

  • スター数: 3
  • フォーク数: 0
  • ウォッチャー数: 3
  • コミット数: 3
  • ファイル数: 7
  • メインの言語: Python

主な特徴

  • Chromeブラウザを利用した選課の自動化スクリプト
  • 学籍番号とパスワードを外部ファイルで管理し安全に入力
  • 選課処理の間隔をプログラム内部で自由に設定可能
  • 環境構築をrequirements.txtで簡単に実施可能

技術的なポイント

xk_NJUはPythonで実装された選課自動化スクリプトであり、主にブラウザの自動操作を通じてオンラインの選課システムにログインし、指定した講義を確実に取得することを目的としています。動作環境はChromeブラウザに依存しており、ユーザーはあらかじめChromeのブックマーク機能で目標とする講義を登録しておく必要があります。スクリプトはSeleniumなどのブラウザ自動化ツールを用いてブラウザ操作を行い、ログイン情報はid.txtとpassword.txtに記載することで分離しています。この設計により、認証情報の直接コード埋め込みを避け、セキュリティ面の配慮がなされています。

選課の間隔はprocessor.pyの98行目にあるsleep関数の引数で設定可能で、これによりサーバーへのアクセス頻度を調整しながら安定して動作させることが可能です。実行はrun.pyがエントリーポイントとなっており、環境構築はpipコマンドを通じてrequirements.txtに記載された依存ライブラリを一括インストールする仕組みです。READMEではChrome以外のブラウザでの動作確認は記載されておらず、Chrome特化型の実装がなされている点が特徴です。

また、コミュニケーションや技術検証を目的に作られているため、不正利用や悪意ある展開は固く禁じられています。コード自体はシンプルながら、ブラウザの挙動を適切に制御しつつユーザーの介入を最小化する作り込みがされており、Pythonによる自動化処理の良いサンプルとしても活用できます。ファイル構成もシンプルで、認証情報管理ファイル、処理ロジックを担うprocessor.py、起動用スクリプトのrun.py、環境定義ファイルなどが揃っています。

プロジェクトの構成

主要なファイルとディレクトリ:

  • LICENSE: ファイル(ライセンス情報)
  • README.md: ファイル(プロジェクト説明)
  • id.txt: ファイル(学籍番号記入用)
  • password.txt: ファイル(パスワード記入用)
  • processor.py: ファイル(選課処理のメインロジック)
  • requirements.txt: ファイル(必要なPythonパッケージ一覧)
  • run.py: ファイル(スクリプト起動用エントリーポイント)

まとめ

南京大学の選課を自動化するシンプルかつ実用的なPythonスクリプト。

リポジトリ情報: