下载Abook 高等教育出版社网站资料

一、背景

又快到了期末复习周,这个学期学了一门操作系统,老师没有给课本习题的答案,说是配套网站上有,我看了一下,确实有,是高等教育出版社的数字课程网站Abookl

http://abook.hep.com.cn

不过登录需要注册,再完成注册进入课程后,发现习题答案只能在线浏览,并没有给下载的接口。

 

二、网页代码分析

身为计算机专业的学生最受不了这种不开源的方式了,我发现答案是由播放器打开的,觉得应该能留下一些接触资源文件的途径,于是翻了翻网页源代码,发现了一些蛛丝马迹。

在答案网页的源代码一百九十行到二百行左右,有这样一段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上,就大功告成!

posted @ 2019-11-26 10:25  王陸  阅读(20991)  评论(3编辑  收藏  举报