diff --git a/README.md b/README.md index c61292b..01d5405 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,13 @@ ## iSmart 课程自动姬 +* **强烈建议您在一个新的虚拟环境中运行此脚本,能有效规避一些因依赖版本不正确导致的问题** + ### 效果展示 -- 拥有更好的题型适应性,理论上适配所有客观题种类 -- 提升稳定性,中途宕机概率大大降低 +* 拥有更好的题型适应性,理论上适配所有客观题种类 +* 提升稳定性,中途宕机概率大大降低 -- 采用全新思路,相较自动化方案,效率提升超过 1000% +* 采用全新思路,直接提交答案,相较自动化方案,效率提升超过 1000% ![](images/demo.png) @@ -21,13 +23,13 @@ #### Q&A -- **Q:** 既然是回传分数,那为何不用 Python 直接将分数上报,反而要走 cdp? +* **Q:** 既然是回传分数,那为何不用 Python 直接将分数上报,反而要走 cdp? >   上报分数的请求中有疑似 Hash 的字段 `ut`,且生成 `ut` 的方法 native,无法通过分析 JavaScript 得到(有木有大佬会 ollydbg 的来交个 PR)
-- **Q:** 使用这个脚本,会不会被检测到作弊? +* **Q:** 使用这个脚本,会不会被检测到作弊? >   不排除这样的可能性,相较自动化而言,目前的方式提交的数据尚不完整(但成绩和学习时长会被记录),若是仔细比对,有可能会发现数据异常 @@ -52,8 +54,6 @@ cd iSmartAuto2 pip install -r requirements.txt ``` -/_  感谢 [@cyp0633](https://github.com/cyp0633) 的 [提醒](https://github.com/Mufanc/iSmartAuto2/pull/8),现已将 `requirements.txt` 中的 websockets 版本降级为 8.1_/ - #### 配置 iSmart 客户端   修改 iSmart 的启动快捷方式,增加参数 `--remote-debugging-port=9222`(如下图),**然后启动 iSmart 客户端并保持登录** @@ -64,7 +64,7 @@ pip install -r requirements.txt   修改 `configs.yml` 中的账号和密码,保证与 iSmart 客户端中登录的账号一致,然后根据需要调整下方参数。在终端中执行 `py main.py -h` 可以查看更多帮助信息,这里列举几个常用命令 -- 列出所有课程和书籍的详细信息 +* 列出所有课程和书籍的详细信息 ```shell py main.py list -d @@ -72,7 +72,7 @@ py main.py list -d
-- 根据书籍 id 执行刷课 +* 根据书籍 id 执行刷课 ```shell py main.py flash -i 51627-7B6911511DB6B33638F6C58531D8FBD3 @@ -94,20 +94,14 @@ py main.py flash -c ![](images/current_course.png) -### 常见问题 - -- 无法刷课? - -  **除非明确要求用户输入,本项目中的所有 Warning 都不会阻塞**,如果你莫名其妙卡住了,控制台又没有要求你输入,那么大概率是 未适配你的课程/环境没配置好/网络问题 - -- 父节点不存在? +### 为何关闭 issues -  不会因为报这个 Warning 而卡住,如果脚本运行完之后你发现所有任务点确实都刷到了,那么完全不用管这个 Warning +  首先,我要贴上这个:[提问的艺术](https://github.com/betaseeker/How-To-Ask-Questions) -- 账号密码与登录不符? +  这个项目开发者和朋友们一直都有在使用,所以整体上大抵是不会有很严重的问题的,如果出现诸如「No module named 'xxxxx'」这类离谱的错误,我不可能会注意不到。如果在使用过程中遇到问题,第一选择应该是重新阅读 README 文档,看看有没有漏掉一些步骤或是环境不对,很多问题通过在搜索引擎中简单搜索,就能找到答案,完全没有必要跑过来询问开发者。 -  脚本判断的逻辑比较粗糙,弹警告只是提醒你务必确保 iSmart 客户端和 `configs.yml` 中是同一个账号,确定无误后大胆使用即可 +  另一方面,一些人发问的方式令我难以回答,开发者在修复一个 bug 之前,首先需要能够稳定复现并且定位到问题所在,单凭一两行简单的描述和报错截图的信息往往是不够完成这一切的。对于不同的教材,可能会在少数几个参数上与我所使用的教材不同,导致脚本无法正常使用,而我又没有时间精力去要来每一个遇到问题的小伙伴的帐号并为他们单步调试,或者有些小伙伴会不放心把帐号交给我这个素未谋面的作者。凡此种种,造成了我很难在 issues 中有效地解决问题。 -- **提 issue 前请看这个 ↓↓↓** +  对于教材差异导致的脚本无法正常使用的问题,如果你有一定的开发能力,恰好又会抓包,完全可以对你的 iSmart 客户端进行抓包,然后简单修改几个参数来让脚本恢复正常,我相信你所需要修改的代码行数不会超过 20 行。举个简单的例子,有很多小伙伴的教材 BookType 不是 0,那么你只需要修改 [这个地方](https://github.com/Mufanc/iSmartAuto2/blob/master/automaton/spider/spider.py#L193),把 BookType 改成你的教材使用的数值即可(一般是 0, 1, 2, 3);又或者,假如有一天登录寄了,你应该能能够注意到我在 [这里](https://github.com/Mufanc/iSmartAuto2/blob/master/automaton/spider/spider.py#L41) 硬编码了一段 salt,那么就去网页端看看这个 salt 是不是变了,将其修改成正确的值即可 -  如果脚本出现异常,请检查你的课程和我学的是不是同一门(见上图),不同课程的参数可能会有细微差异,导致获取不到任务或者别的一些诡异现象。如果你有一定的爬虫开发经验,相信你自己可以通过该修改源代码很快解决这些问题;如果你只是想刷课,那么非常抱歉我并没有时间和精力去对每一本教材都做适配 +  思索再三,我决定关闭 issues 板块,如果有任何问题,可以到 [discussions](https://github.com/Mufanc/iSmartAuto2/discussions) 中提出你的疑问,并寻找有没有使用同样教材的小伙伴。如果我有时间,也有可能会尝试复现你的问题并给出答复 diff --git a/requirements.txt b/requirements.txt index e6ca984..d80c50c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,9 +1,9 @@ -loguru -opencv-python -numpy -httpx -beautifulsoup4 -PyYAML -lxml -argparse -websockets \ No newline at end of file +loguru~=0.6.0 +argparse~=1.4.0 +opencv-python~=4.5.5.64 +numpy~=1.22.3 +httpx~=0.22.0 +beautifulsoup4~=4.10.0 +websockets~=10.2 +PyYAML~=6.0 +lxml~=4.8.0