下载Abook 高等教育出版社网站资料
一、背景
又快到了期末复习周,这个学期学了一门操作系统,老师没有给课本习题的答案,说是配套网站上有,我看了一下,确实有,是高等教育出版社的数字课程网站Abookl
不过登录需要注册,再完成注册进入课程后,发现习题答案只能在线浏览,并没有给下载的接口。
二、网页代码分析
身为计算机专业的学生最受不了这种不开源的方式了,我发现答案是由播放器打开的,觉得应该能留下一些接触资源文件的途径,于是翻了翻网页源代码,发现了一些蛛丝马迹。
在答案网页的源代码一百九十行到二百行左右,有这样一段JS代码,上面的注释直接告诉了我们这个函数的作用,就是用来下载资源的!
//下载资源增加下载次数 function downloadNumber(resourceInfoId,ip,resFileUrl,ticket){ jQuery.ajax( { type : "get", url : "downLoadNumber.action", data : "resourceInfoId=" + resourceInfoId + "&resourceUrl=" + resFileUrl, dataType : "text", success : function(bool) { if(bool == "true"){ location= "http://abook.hep.com.cn:80/downLoadResouce.action?resourceInfoId=" + resourceInfoId + "&resourceUrl=" + resFileUrl; }else{ return false; } } }); }
稍微分析一下这段代码,里面套了一个json,有一个success,对应的值是一个函数,如果bool为true,会得到一个location,根据这个location的URL结构来判断,这应该就是一个下载链接。
"http://abook.hep.com.cn:80/downLoadResouce.action?resourceInfoId=" + resourceInfoId + "&resourceUrl=" + resFileUrl;
不过我们发现想要拼凑出这个URL还需要两个参数,resourceInfoId和resFileUrl这两个参数也是最开始函数的参数,看变量命名的含义,大概猜出是资源的编号和文件URL。
那我们就直接开启F12搜索一下吧(我这里使用的是火狐浏览器)。找不到按回车,直到找到了这样一段代码。
看样子应该是得到了resourceInfoId=5000093767
接着去找resourceUrl,但发现找不到,难道并不需要这个参数?
于是先放弃对resourceUrl的研究,先试着拼凑URL
http://abook.hep.com.cn:80/downLoadResouce.action?resourceInfoId=5000093767
发现可以直接下载,也就印证了刚才的猜想,这样下载链接的格式已经能够确定
http://abook.hep.com.cn:80/downLoadResouce.action?resourceInfoId=**********
只需要向我之前那样登录进入课程获取对应资源的resourceInfoId,然后填到上面的URL上,就大功告成!