# AutoWanXue **Repository Path**: WeiYuanStudio/AutoWanXue ## Basic Information - **Project Name**: AutoWanXue - **Description**: AutoWanXue - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2020-11-12 - **Last Updated**: 2022-11-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AutoWanXue **已经失效,本人即将毕业没有精力维护,勿念。** **已经失效,本人即将毕业没有精力维护,勿念。** **已经失效,本人即将毕业没有精力维护,勿念。** **估计是官方加入了CSRF token之类的。爬下来的答案依然可用,可以下载本项目ZIP包,然后打开AnswerPages文件夹,内含《大学生发展规划与就业指导(三)》答案** **本仓库依然保留,希望为后人开发提供参考,给到小小的帮助。虽然我写得很烂** --- **当前分支仅适配<大学生发展规划与就业指导(三)>,若有其他课程需求,请自己修改代码参数,抓取答案进行刷课。** **仅支持刷课后习题,刷时长本人已经用Postman测试用例批量模拟请求解决了,所以也不会打算自己再开发一个了。** **如果想自己修改代码适配其他课程,请做好十足的心理准备。代码已经长期未更新,也没有后续更新维护的想法(上什么课,仓库就适配什么课),本着能用就行,刷完就行,自用的想法开发,顺便放出来方便广大同学的想法放上来。** **如果有任何好的想法,本仓库随时欢迎您的PR** ## 使用方法 ### 第一步,设置cookie 登录后复制一份学习页面的cookie。 ![Kzaf29.png](https://s2.ax1x.com/2019/11/04/Kzaf29.png) 之后在项目的根目录放一个文件名为**cookie**的文件,里面存入你复制的cookie。 ![KzdWo8.jpg](https://s2.ax1x.com/2019/11/04/KzdWo8.jpg) ### 第二步,运行脚本 在这之前,你得保证当前系统已经正确的安装了Python3.x环境,详情可以上网找找教程 打开控制台,运行`python DoCourse.py`即可开始刷课。 --- **如果你需要自定义课程,以下内容可能能帮到你。需要有一定的开发能力配合源码才能看懂** ## 文件排布 | FileName | Usage | |------------|------------------------------| |DoCourse.py|通过放置在根目录的json答案自动发送答题请求| | GenJSON.py | 手动生成格式化的json答案存档 | |GetAllAnswer.py|爬取答案| |ParseHTMLToJSON.py|将爬取到的答案HTML文件解析为json| |RandomDoCourse.py|随机答题| 因为答题后端不限制提交次数,新提交会覆盖旧提交。所以首先发送随机的答题请求,然后爬取答案页面,然后解析HTML页面中的答案到json格式,然后通过遍历json内数据发送答题请求,覆盖之前的答案。这样即可达到全部课后作业满分的效果。 ## 获取所有课程列表的课程编号 在课程列表页面,控制台运行以下代码,即可打印出课程号列表。复制到Python代码中,分别执行,即可拿到对应课程的答案,针对万学平台的其他课程进行刷课。 ```js var codeList = [] Array.from(document.getElementsByTagName('a')).filter(item => { let onClickStr = item.getAttribute("onclick") if (onClickStr != null) { if (onClickStr.indexOf('goStudy') == 0) { codeList.push(onClickStr.slice(8, 13)) } } }) console.log(JSON.stringify(codeList)) ``` --- **以下内容可能已经过时。只是制作时留下的一些笔记。非开发者请无视** ## 网络请求 ### 完成课程请求 POST ```text data finish_21037=A&finish_21038=A&finish_21039=A&finish_21040=B&finish_21041=B&finish_21042=B&finish_21042=C&finish_21043=A&finish_21043=B&finish_21044=B&finish_21044=D&finish_21045=D&finish_21046=D&courseId=1012&startTime=1572679274430&em=2_7023 startTime 1572679274430 courseId 1012 em 2_7023 ``` ### 答案请求 GET ```TEXT em 2_6977 courseId 1012 ``` #### 第一课 | data | startTime | courseId | em | |-------------|----------------|----------|--------| | 20637-20646 | unix tumestamp | 1012 | 2_6977 | #### 第二课 | data | startTime | courseId | em | |-------------|----------------|----------|--------| | 20647-20656 | unix tumestamp | 1012 | 2_6978 | #### 最后一课 | data | startTime | courseId | em | |-------------|----------------|----------|--------| | 21037-21046 | unix tumestamp | 1012 | 2_7023 | ## 课程表 ```text 第一单元 紧密协同团队 2-3 6977-6978 第二单元 核心通用能力 5-25 6980-7000 第三单元 企业职务能力 26-40 7002-7015 第四单元 职业发展领域选择 42-43 7017-7018 第五单元 高层次人脉网络构建 45-48 7020-7023 ``` | Units | Class Num | Id Range | |--------|-----------|-----------| | Unit 1 | 2-3 | 6977-6978 | | Unit 2 | 5-25 | 6981-7000 | | Unit 3 | 26-40 | 7002-7015 | | Unit 4 | 42-43 | 7017-7018 | | Unit 5 | 45-48 | 7020-7023 |