EricZhu-42 / PedagogySquare_Downloader

南京大学 (Nanjing University) 在线教学平台 —— 教学立方的课件批量下载工具,基于Python + Requests.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

想咨询下是如何找到这些url的

Bug-001 opened this issue · comments

login_url = r"https://teaching.applysquare.com/Home/User/login" attachment_url_fmt = r'https://teaching.applysquare.com/Api/CourseAttachment/getList/token/{}?parent_id={}&page={}&plan_id=-1&uid={}&cid={}' course_info_url_fmt = r'https://teaching.applysquare.com/Api/Public/getIndexCourseList/token/{}?type=1&usertype=1&uid={}' token_pattern = r'(https://teaching\.applysquare\.com/Api/Public/getIndexCourseList/token/.*?)"'

login_url的来源很好理解,那么请问下面三个url是怎么找到的呢?我注意到url中有"Api",请问要如何使用这样的API?非常感谢!

你好!

在开发爬虫类程序的过程中,寻找含有所需信息的url地址是非常关键的一步。在大部分情况下,我推荐使用浏览器中内置的开发者工具(如:Chrome开发者工具)来完成这一目标。如果你需要的信息直接保存在服务器返回的网页源码中(静态网页),你可以直接通过解析网页源码来提取这些信息;如果它们是通过XHR等方法加载到网页内的(动态网页),你可以通过在向服务器请求网页资源时,观察开发者工具中Network一栏中显示的资源加载过程来找到返回信息的真实地址。对于更加复杂的网络请求,Fiddler等工具可以更好地帮助你完成这一目标。

不过,我想指出的是,虽然我们可以通过多种方法找到这些地址,但对于外部人员来说,直接从这些地址获取信息(尤其是快速、大量地获取信息)常常是不合适的(换言之,这些API并不是公开的)。事实上,我在公开发布的代码中包含这几个地址的行为本身就在一定程度上侵犯了教学立方系统开发者的权益。由于本repo的代码并不能绕过系统对用户的权限验证(即:只有有权限访问课件的学生才能获取下载课件所需的token),我才将这些url直接包含在代码中。正因如此,我不会公开讨论如何从教学立方系统中找到这几个url,也不会公开讨论这些url的使用方法。

如果你是以学习为目的,希望更多地了解相关问题的细节,随时欢迎你通过邮件(zhuxinhao00@gmail.com)和我讨论。

大概知道什么意思了,我可以先自行尝试,thx!