中国大学MOOC测验爬取(下)

文章目录

  • 中国大学MOOC测验爬取(下)
    • 获取测验id
    • 获取试卷及答案

中国大学MOOC(上)我们讲到获取课程信息。下面我们继续。

获取测验id

当我们获取到课程id后,接下啦就是测验id,我们去抓一下包

我发现上面图片这个请求。

当然还要上传payload表单数据。这个payload加入postdata既可以了。我们分析一下payload的数据
首先

callCount=1,
scriptSessionId=${scriptSessionId}190,
c0-scriptName=CourseBean,
c0-methodName=getLastLearnedMocTermDto
c0-id=0,

这些参数是不变的。

c0-param0=number:1206781242


这里number后的数字其实就是课程id(在这说一下,这个课程id我指的是termPanel这个里面的id,不是courseId,就像上图的id: 1206781242是我说的idcourseId: 1206446832不是)
batchId=1616055609332中的数字其实就是13位时间戳
但是这里获取到的数据其实是text/plain数据,它需要我们转换编码,

text = response.text.encode('utf-8').decode('unicode-escape')

然后用正则匹配,这里我匹配出来测验名字与测验id。

s\d{1,3}\.id=(\d+);s\d{1,3}\.name="(.*?测试.*?)";|s\d{1,3}\.id=(\d+);s\d{1,3}\.name="(.*?测验.*?)";

这个是我匹配的模式。

httpSessionId=4275fb5b78eb47d4a07dd9da3a6a119f

是存在cokie里面的对应的键是NTESSTUDYSI

获取试卷及答案

接下来我们看一下它是怎样的一个请求。
上图上面3个请求就是测验答案获取的过程,中间有2个我没有标红的请求,它是没用的,不用管。
我们先看第一个请求=>测验试卷

它的请求还是post请求。

这个是payload,跟上面的对比一下,这里面httpSessionId跟上面说的一样,
c0-param0=string:1220197025这里的数字其实就是测验id,batchId还是13位时间戳。其它参数还是定值,不变的。
不过这个返回数据还是text/plain格式。需要我们转一下码。其实这个数据不一定要获取,如果仅仅是获取试卷不获取答案,那很简单,到这为止,如果要获取答案的话,要获取aidtid,它在返回数据的最后,类似下面这样

dwr.engine._remoteHandleCallback(‘1616055609414’,‘0’,{aid:2268659917,answers:null,autoSubmit:false,evaluateVo:null,objectiveQList:s0,showAnalysis:true,subjectiveQList:s1,submitStatus:1,tid:1220197025,tname:"\u6D4B\u9A8C1",type:2});

这个在我们获取测验与答案会用到。
接下来是上传自己做的测验,这个其实是最难的一步,这是我自己认为的。

这个上传答案的请求方式还是post请求。我们看一下它的上传参数。

这个其实就是一小小部分,它其实很多,

当我点击Show more后是这个的好多倍,我一开始是找它处理的js文件,但是没找到,是我太菜了。然后只能自己看这个复写了,最后复写出来了。这里就不多说了,其实就是正则匹配,然后转换什么的。就是数据太多,麻烦一点,别的没什么。
接下来就是我们请求测验与答案了。
它的请求也是post请求,请求的url与请求测验的url相同。我们主要看payload

这里c0-param1=number:2268659917中的数字就是上面的aidc0-param0=string:1220197025对应上面tid,其它的跟上面讲的一样,就这两个单独讲一下。然后我们就可以获取到测验及其答案了。它的返回数据格式跟上面一样,那我们操作也是一样的,下面就是获取里面的内容,我们用的是正则。

好了,本期中国大学MOOC测验爬取结束啦。觉得我写的还
凑合就关注一下Ajian,顺便关注一下我的微信公众号
(spiders),也可以扫一下下面的二维码。
我们下期见。

中国大学MOOC测验爬取(下)相关推荐

  1. 中国大学MOOC测验爬取(上)

    中国大学MOOC测验爬取 MOOC是什么 登录分析 userId与csrfKey获取 获取课程数目及页数 MOOC是什么 慕课(MOOC),即大规模开放在线课程,是"互联网+教育" ...

  2. 免费python课程排行榜-Python基础练习(一)中国大学定向排名爬取

    说好的要从练习中学习爬虫的基础操作,所以就先从容易爬取的静态网页开始吧! 今天要爬取的是最好大学网上的2018年中国大学排名.我个人认为这个是刚接触爬虫时用来练习的一个很不错的网页了. 在说这个练习之 ...

  3. python爬取中国大学_Python 3爬取全国高校基本信息

    最近接了一个单子,是爬取全国高校的基本信息,高校名字,高校层次,高校地区,招生办电话,招生办官网~ 镇楼图如下: 信息源网址是:https://gkcx.eol.cn/ 开发环境:python3.6( ...

  4. Python爬取中国大学MOOC课程信息

    问题:获取中国大学MOOC平台的课程信息,包括开课学校.课程类别(标签).课程名称.课程评分.评价人数和已参加课程人数. 思路: 1.进入中国大学MOOC首页,点击"学校",进入学 ...

  5. 使用selenium + chrome爬取中国大学Mooc网的计算机学科的所有课程链接

    目的:使用selenium + chrome爬取中国大学Mooc网计算机学科的所有的课程链接列表 思路:找到每个分页的节点属性为class="m-course-list" 的div ...

  6. 史上最细,Charles抓包工具的基本配置、查找接口的方法、爬取中国大学Mooc整门课程

    今天给大家分享Charles这个软件,讲解基本配置和接口查询操作,最后用一个中国大学mooc的示例来展示Charles在Windows端的用法.内容丰富,技术要点详细,站里面搜索中国大学MOOC爬虫的 ...

  7. 中国大学MOOC课程信息爬取与数据存储

    版权声明:本文为博主原创文章,转载 请注明出处: https://blog.csdn.net/sc2079/article/details/82016583 10月18日更:MOOC课程信息D3.js ...

  8. 批量爬取中国大学MOOC网站的媒体资源

    质量声明:原创文章,内容质量问题请评论吐槽.如对您产生干扰,可私信删除. 主要参考:https://github.com/Dayunxi/getMOOCmedia 三点说明: 感谢 中国大学MOOC ...

  9. 关于中国大学mooc嵩天老师课程中定向爬取淘宝产品信息

    关于中国大学mooc嵩天老师课程中定向爬取淘宝产品信息 python小白最近看老师课程,发现淘宝网页升级了,用以前的代码爬不了,查找了很多资料后发现了一些缺陷,在此分享给大家 老师的代码大体上没问题, ...

  10. 通过requests库re库进行淘宝商品爬虫爬取(对中国大学mooc嵩天老师爬虫进行修改)

    中国大学mooc上的爬取淘宝页面商品已经因为淘宝的维护而无法爬取 比如,只出现个表头: 这是我按照嵩天老师代码学习,遇到的问题. 原代码如下: import requests import re de ...

最新文章

  1. java bitmap base64_Android Bitmap到Base64字符串
  2. elasticsearch常见属性单词解释
  3. 快速学习nodejs系列:六、nodejs特性3--事件驱动
  4. Android 通过 XMPP 实现聊天功能,App Engine Assisted Group Chat (开源)
  5. PHP iconv 解决utf-8和gb2312编码转换问题
  6. 线性代数:矩阵乘向量-学习笔记
  7. html5播放视频自动循环播放,HTML5 通过Vedio标签实现视频循环播放的示例代码
  8. 《长安十二时辰》火了!程序员版本过于真实!
  9. java代码安全检测机制,Java语言有多种实现的机制,下列( )技术不属于代码安全检测。...
  10. 新开博了,欢迎大家来做客!
  11. 单体内置对象_第五章 单体内置对象
  12. svn添加新项目的步骤
  13. ssis oracle配置,[SSIS][Oracle]安裝 Oracle Driver 提供 SSIS 使用
  14. hihocoder 1378(有向图求最小割集)
  15. 四年程序员的常用工具清单
  16. 日常英语单词学习-Stages of Life
  17. verilog always语法_Verilog 最全经验总结(建议收藏)
  18. [事件知识图谱] EventKG: A Multilingual Event-Centric Temporal Knowledge Graph
  19. nm and n||m 的区别
  20. 江苏计算机报名时间2021年上半年,关于2021年春季江苏省计算机等级考试报名的通知...

热门文章

  1. Asp.net MVC下载文件的四种方法以及下载ZIP文件的一种方法
  2. 【杂记】各项异性滤波简介Anisotropic Filtering(AF)
  3. Android调用系统闹钟AlarmClock
  4. 未经处理的异常:System.BadImageFormatException:“未能加载文件或程序集“GxIAPINET
  5. “五一”或成疫情来最火爆假期,招行信用卡天天返利助力消费
  6. 蹩脚的Access分页语句
  7. CRM客户关系管理系统助力企业处理客户投诉问题
  8. 韶关市教育信息化名教师蓝凌工作室成员简介
  9. RTK ST5113-53 3kN 220VAC
  10. 经典时间序列的学习(一)简单的认识时间序列