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

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

學堂在線課程URL分析

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

課程界面以下api

image-20200409203156338

目錄中有5種單元對象:cookie

對象 例子
視頻(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規則比較簡單ide

首先是ui

next.xuetangx.com/learn/url

緊接着是重複了兩次的數字設計

THU 0809 1000 247 C++3d

THU 0502 1000 376 英語據說unix

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

再接着是一個數字串,應該與課程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用來幹啥的..)
相關文章
相關標籤/搜索