學堂在線課程頁面URL和JSON的簡單分析


學堂在線課程頁面URL和JSON的簡單分析

學堂在線課程URL分析

清華大學C++語言程序設計基礎(2020春)生活英語聽說(2020春)為例

課程界面如下

image-20200409203156338

目錄中有5種單元對象:

對象 例子
視頻(video) https://next.xuetangx.com/learn/THU08091000247/THU08091000247/1515741/video/1358540
圖文(article) https://next.xuetangx.com/learn/THU08091000247/THU08091000247/1515741/article/1358541
作業(exercise) https://next.xuetangx.com/learn/THU08091000247/THU08091000247/1515741/exercise/1358558
考試(quiz) https://next.xuetangx.com/learn/THU05021000376/THU05021000376/1515481/quiz/1340243 (清華大學-生活英語聽說(2020春)
討論(discussion) https://next.xuetangx.com/learn/THU05021000376/THU05021000376/1515481/discussion/3934275 (清華大學-生活英語聽說(2020春)

可以看出,URL規則比較簡單

首先是

next.xuetangx.com/learn/

緊接着是重復了兩次的數字

THU 0809 1000 247 C++

THU 0502 1000 376 英語聽說

THU就是清華咯,0809應該是課程提交日期,1000摸不透,247應該是該學校上傳課程的順序ID。

再接着是一個數字串,應該與課程ID相關

1515481

最后就是單元類型和這個單元的ID了

article/135854

quiz/1340243

注:只有這串數字ID在Json里有被返回

課程頁面返回的Json分析

一個課程的目錄信息列表可以通過GET請求下面這樣的URL得到(需要帶cookies)

https://next.xuetangx.com/api/v1/lms/learn/course/chapter?cid=1515481&sign=THU05021000376

返回形式: json

里面還有很多我沒看懂的返回值,有興趣可以自行研究

這里拿 生活英語聽說 做例子

這里先提前把Json的結構理一下

從外到里,一個目錄的結構應該為

順序 名稱 注解
1 course
2 chapter
3 section
4 leaf 頁(直譯有丶抽象)

拿截圖來對應一下

image-20200409213614768

了解完這個層次之后,后面就好理解一些了

拿到Json后,拖到Bejson看一下

image-20200409212156455

可以看到,所有數據都在名為 data 的JsonObject里

course_id 課的id咯
course_name 課名
course_chapter 該課的所有章的集合

從0開始,course_chapter里每一個JsonObject代表一個章

這里的10個JsonObject恰好與目錄的10個單元相對應

這里展開 0代表的第一章 后可以看到一些數據

order 章的絕對順序,0開始
id 章的ID
name 章名
section_leaf_list 該章的所有節的集合

類似地,

從0開始,sectiopn_leaf_list里每一個JsonObject代表一個節

這里11個JsonObject恰好與第一章中的10個小節對應

這里展開 0 代表的第一節,可以看到以下數據

order 節的絕對順序,0開始
chapter_id 章的id
id 節的id
name 節名
leaf_list 該節所有頁的集合

類似地,

從0開始,leaf_list里地每一個JsonObject代表一個頁

這里1個JsonObject恰好與第一章第一節中的1個頁對應

這里展開 0代表的第一頁(也是唯一一頁),可以看到以下內容

name 頁名
is_locked 鎖定狀態,這個可能會用於quiz類型的單元,用於限制學生對單元的訪問,比如考完后該項直接改為true,禁止重考
start_time 毫秒制的unix時間戳,代表第一次觀看時間
chapter_id 章id
section_id 節id
leaf_type 目前我還沒看到其他的type
id 頁的id (這個就是URL的最后一部分數字)
is_show 不清楚,該頁是否可見?
end_time 第一次看完的時間?為什么我這里看過了但是值是0呢
score_deadline 觀看截止日期
is_score 不清楚
is_assessed 不清楚
order 頁的絕對順序,0開始
leafinfo_id 頁信息id (雖然不知道這id用來干啥的..)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM