3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

QB(CBT)の学内演習順位を数え上げるスクリプト

Posted at

こんにちは。
医学部4年になると、CBT対策としてQB(クエスチョンバンク)に取り組むかと思います。
このQB、学年内での演習状況がプロットで表示されますが、現在(2020/8/23)の仕様だと、自分の演習問題数の順位が何位、等の表示がされません。
1周してしまえばカウントがカンストするのでどうせ同率1位にはなるのですが、それ以前ではやはり気になるところ。
プロットを1つ1つ上から数えるのは大変なので、自動で数え上げるスクリプトを書きました。
twitterにて「共有してほしい」との要望を頂いたので、共有します。

※当方プログラミング、githubともに始めたばかりの初心者です。コードが汚い、githubの使い方がおかしい等があるかと思いますが、ご容赦ください🙇

##■できること

result
あなたの演習数ランキングは 〇〇位 です!
あなたの正解率ランキングは 〇〇位 です!
あなたの昨日の演習数ランキングは 〇〇位 です!

##■大まかな仕組み
①seleniumでmediLinkアカウントにログイン、順位表のページのhtmlを取得
②BeautifulSoup4で取得したhtmlから各プロットの要素を取得
③各プロットのx座標、y座標から自分の順位を数え上げ

##■動作確認環境
・Python 3.8.1
・macOS Catalina ver.10.15.5
(2020/8/23)
※QB側のサイト表示に依存するため、時間帯によってはエラーとなってしまいます。

##■コード
https://github.com/fumiyacyrus/qb_cbt_ranking

##■使い方
####◆使用ライブラリのインストール

  • selenium
  • BeautifulSoup4

####◆ChromeDriverの準備
https://chromedriver.chromium.org/downloads
からお使いChromeのverに合ったドライバーをダウンロード。
場所は好きな場所でOK。

####◆コード上での設定

6行目
DRIVER_PATH = ''    # ブラウザのドライバーのpath:str

''の中に先程ダウンロードしたChromeDriverのpathを記述

55,56行目
    type_text(email_form, '')   # アカウントのemailアドレス:str
    type_text(pass_form, '')    # アカウントのパスワード:str

''の中にご自身のmediLinkアカウントのメールアドレス・パスワードを記述

####◆ターミナル上

$ python3 qb_cbt_ranking.py

html取得に少し時間がかかりますが、15秒ほどで結果が表示されるかと思います。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?