From 4fcbcdc7cbe0828f0cf5f9956dfd3b60ead79002 Mon Sep 17 00:00:00 2001
From: Mufanc <47652878+Mufanc@users.noreply.github.com>
Date: Mon, 27 Sep 2021 20:28:46 +0800
Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20README.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 52 ++++++++++++++++++++++++++++++++++++++++++
automaton/devtools.py | 17 ++++++++++++--
automaton/ismart.py | 4 ++--
configs.yml | 9 ++++++--
images/booklearn.png | Bin 0 -> 73091 bytes
images/demo.png | Bin 0 -> 65527 bytes
images/edit-lnk.png | Bin 0 -> 25232 bytes
images/inspect.png | Bin 0 -> 22886 bytes
8 files changed, 76 insertions(+), 6 deletions(-)
create mode 100644 README.md
create mode 100644 images/booklearn.png
create mode 100644 images/demo.png
create mode 100644 images/edit-lnk.png
create mode 100644 images/inspect.png
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..868ceda
--- /dev/null
+++ b/README.md
@@ -0,0 +1,52 @@
+## iSmart 课程自动姬 v1.0.0
+
+>
「不止于自动化,追求极致效率」
+>
+> * 如果你觉得这个脚本好用,请点一个 Star⭐,你的 Star 就是作者更新最大的动力
+
+### 效果展示
+
+* 拥有更好的题型适应性,理论上适配所有客观题种类
+
+* 提升稳定性,中途宕机概率大大降低
+
+* 采用全新思路,相较 [自动化方案](https://github.com/Mufanc/iSmartAuto) ,效率提升超过 1000%
+
+![](images/demo.png)
+
+
+### 工作原理
+
+ 使用抓包工具分析客户端流量,可以得知 iSmart 客户端采用的判题方式为本地评判。也就是说会首先将题目和答案一同下载下来,完成答题后使用用户的计算机完成判分,最后将分数回传。这样一来就为爬取答案提供了可能,脚本会根据提供的用户名和密码完成登录,然后将习题的答案下载下来,为进一步地自动答题做好准备。
+
+ 一次偶然的机会,我发现 iSmart 客户端其实就是一个套壳的 Chromium,在其启动参数中加上 `--remote-debugging-port=9222` 参数后,其中页面便能够在 [chrome://inspect](chrome://inspect) 中被调试:
+
+![](images/inspect.png)
+
+ 进而,可以通过 Python 调用 [Chrome DevTools Protocol](https://chromedevtools.github.io/devtools-protocol/) (cdp),完成答案的自动提交
+
+#### Q&A
+
+* **Q:** 既然是回传分数,那为何不用 Python 直接将分数上报,反而要走 cdp?
+
+> 上报分数的请求中有疑似 Hash 的字段 `ut`,且生成 `ut` 的方法 native,无法通过分析 JavaScript 得到(有木有大佬会 ollydbg 的来交个 PR)
+
+
+
+* **Q:** 使用这个脚本,会不会被检测到作弊?
+
+> 不排除这样的可能性,相较自动化而言,目前的方式提交的数据尚不完整(但成绩和学习时长会被记录),若是仔细比对,有可能会发现数据异常
+
+### 使用方法
+
+ 修改 `configs.yml` 中的账号和密码,保证与 iSmart 客户端中登录的账号一致,然后修改 iSmart 的启动快捷方式,增加参数 `--remote-debugging-port=9222`:
+
+![](images/edit-lnk.png)
+
+ 此时运行 main.py,启动 iSmart 客户端,进入某本书籍的教材学习页(如下图),脚本会自动提交成绩。
+
+![](images/booklearn.png)
+
+### 开发者的话
+
+ 该项目尚处于起步阶段,项目结构还没有完全确定下来,所以后续可能会经历多次重构。目前很多功能虽然存在于源码中,但还不完善或者未经测试,可能造成意料之外的结果,所以在使用前还请三思
diff --git a/automaton/devtools.py b/automaton/devtools.py
index 22c9f7a..4fd4afa 100644
--- a/automaton/devtools.py
+++ b/automaton/devtools.py
@@ -40,9 +40,22 @@ class Browser(object):
for page in pages:
if re.match(r'.*me.ismartlearning.cn/center/student/course/bookLearn\.html.*', page['url']):
return Page(page['url'], page['webSocketDebuggerUrl'])
- await asyncio.sleep(2) # 这样写跟套 finally 有区别
except httpx.ConnectError:
- await asyncio.sleep(2)
+ pass
+ await asyncio.sleep(2)
+
+ async def any_http_page(self): # 等待任意 http 页面
+ async with httpx.AsyncClient() as client:
+ while True:
+ logger.info('等待可用页面...')
+ try:
+ pages = (await client.get(f'http://127.0.0.1:{self.port}/json')).json()
+ for page in pages:
+ if re.match(r'https?://.*', page['url']):
+ return Page(page['url'], page['webSocketDebuggerUrl'])
+ except httpx.ConnectError:
+ pass
+ await asyncio.sleep(2)
class Page(object):
diff --git a/automaton/ismart.py b/automaton/ismart.py
index 2b3d9f9..ae2470d 100644
--- a/automaton/ismart.py
+++ b/automaton/ismart.py
@@ -15,7 +15,7 @@ from .spider import Spider
random_args = { # 不同题型对应的随机时长和分数范围
'1': { # 单选题
'time': (20, 60), # 完成时长 / 秒
- 'score': 1 # 得分 (归一化, 向上至满分)
+ 'score': 1 # 得分 (归一化, 向上随机取至满分)
},
'2': { # 多选题
'time': (40, 120),
@@ -48,7 +48,7 @@ random_args = { # 不同题型对应的随机时长和分数范围
'11': { # 选词填空
'time': (30, 90),
'score': 0.9
- },
+ }
}
diff --git a/configs.yml b/configs.yml
index dc95ad5..cebecbe 100644
--- a/configs.yml
+++ b/configs.yml
@@ -1,13 +1,18 @@
# Todo: 每次 commit 之前务必清除账号密码
-# iSmart 客户端相关配置
+# 刷课配置
+project:
+ skip-finished: true # 跳过已完成任务(暂不支持)
+
+
+# iSmart 客户端配置
browser:
executable: Z:\iSmart\client\iSmart.exe # 客户端可执行文件的路径
args: # 启动 iSmart 客户端时额外提供的参数
- --disable-web-security
port: 9222 # devTools 调试端口
-# 用户相关配置(务必保持账号密码与 iSmart 中已登录的相同)
+# 用户配置(务必保持账号密码与 iSmart 中已登录的相同)
user:
username: <用户名> # 手机号
password: <密码> # 密码
diff --git a/images/booklearn.png b/images/booklearn.png
new file mode 100644
index 0000000000000000000000000000000000000000..e9625872b2a8d0929703bedeadfa074e0aa81f72
GIT binary patch
literal 73091
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