Skip to main content

shinher-pro 1.6.3

Project description

Shinher-Pro V1.6.1

這個程式是一個自動化的成績查詢工具,它使用 Selenium 和 BeautifulSoup 套件來模擬網頁瀏覽和解析 HTML 內容,並使用 Keras 加載自訓練的 AI 模型進行圖形驗證碼自動辨識。它可以自動登入到支援的成績查詢網站,通常是欣河線上查詢系統,只需輸入帳號密碼,程序會自動操作到成績業面並返回成績,跳過原先繁雜的操作。

PyPI Version

use

from shinherpro import TYAI          # 指定學校專用模組
from shinherpro import vfcModel      # 驗證碼辨識模組
from shinherpro import chormeDriver  # 模擬遊覽器模組

setup model

model_setup(file.h5) 用於載入模型,回傳的內容將作為get grade()使用的必要引數.

model = vfcModel.setup(model_path)

official_model(Version) 提供了官方的驗證碼辨識模型,目前僅支持5.1版本(尚在開發中)

model_path = vfcModel.official_model(5.1)
model = model_setup(model_path)

setup chrome driver

chrome_driver_setup(url,view) 用於打開chrome driver 並開啟指定網址,,回傳的內容將作為get grade()使用的必要引數.

driver = chormeDriver.setup(url,view)

url為指定的網址,view可指定模擬遊覽器執行時是否要顯示實體頁面.

TYAI中的.urlGet() 提供了TYAI的成績查詢連結

url = TYAI.urlGet() = "https://sai.tyai.tyc.edu.tw/online/"
driver = chormeDriver.setup(url,True)

get grade

TYAI.getGrades() 函式用於獲取成績資訊。你需要提供(學號、密碼(身分證字號)、WebDriver對象、AI模型、考試名稱)作為輸入參數。函式內部進行驗證碼辨識、登入操作,然後切換到成績查詢頁面,獲取成績表格的 HTML 內容,並使用json格式回傳.

TYAI.getGrades(username, password, driver, model,examname,LowConfidence):

driver、model 為提前初始化所取得的回傳值

username, password 為帳號密碼

exam 為考試列表需準確無誤

LowConfidence 非必填,預設為85,為驗證碼AI的準確度要求,若AI判斷本次驗證碼準確率低於指定值,則會重新整理網頁獲取新的驗證碼。

可以根據 code 的值來判斷返回結果的狀態,並根據需要處理相應的資訊。

code 0 正常回傳成績 , code 1 帳號密碼錯誤 , code 2 登入失敗次數過多 , code 3 未知的錯誤訊息

如果登入成功,成績查詢成功,則返回以下格式的json:

{
    "code": 0,
    "考試標題": "考試標題",
    "學號": "學號",
    "姓名": "姓名",
    "班級": "班級",
    "考試科目成績": [
        {
            "考試科目": "科目1",
            "考試成績": "成績1",
            "全班平均": "平均1"
        },
        {
            "考試科目": "科目2",
            "考試成績": "成績2",
            "全班平均": "平均2"
        },
        ...
    ],
    "總分": "總分",
    "平均分數": "平均分數",
    "排名": "排名",
    "科別排名": "科別排名"
}

其中,code 表示返回的狀態碼,0 表示成功。其他鍵值對表示成績資訊,包括考試標題、學號、姓名、班級、考試科目成績、總分、平均分數、排名和科別排名。考試科目成績 是一個列表,每個元素表示一個考試科目的成績,包括考試科目名稱和對應的成績。

如果登入失敗,則返回以下格式的字典:

{
    "code": 1,
    "reason": "帳號或密碼錯誤,請重新登入!"
}

其中,code 表示返回的狀態碼,1 表示帳號或密碼錯誤。reason 表示錯誤原因的描述。

如果登入失敗次數過多,則返回以下格式的字典:

{
    "code": 2,
    "reason": "帳號登入失敗次數過多,請於15分鐘後再嘗試登入!!"
}

其中,code 表示返回的狀態碼,2 表示登入失敗次數過多。reason 表示錯誤原因的描述。

如果其他未知錯誤發生,則返回以下格式的字典:

{
    "code": 3,
    "reason": "錯誤原因"
}

其中,code 表示返回的狀態碼,3 表示未知錯誤。reason 表示錯誤原因的描述。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shinherpro-1.6.3.tar.gz (8.4 kB view hashes)

Uploaded Source

Built Distribution

shinherpro-1.6.3-py3-none-any.whl (8.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page