下载Abook 高等教育出版社网站资料
一、背景
又快到了期末復(fù)習(xí)周,這個(gè)學(xué)期學(xué)了一門(mén)操作系統(tǒng),老師沒(méi)有給課本習(xí)題的答案,說(shuō)是配套網(wǎng)站上有,我看了一下,確實(shí)有,是高等教育出版社的數(shù)字課程網(wǎng)站Abookl
http://abook.hep.com.cn
不過(guò)登錄需要注冊(cè),再完成注冊(cè)進(jìn)入課程后,發(fā)現(xiàn)習(xí)題答案只能在線瀏覽,并沒(méi)有給下載的接口。
二、網(wǎng)頁(yè)代碼分析
身為計(jì)算機(jī)專業(yè)的學(xué)生最受不了這種不開(kāi)源的方式了,我發(fā)現(xiàn)答案是由播放器打開(kāi)的,覺(jué)得應(yīng)該能留下一些接觸資源文件的途徑,于是翻了翻網(wǎng)頁(yè)源代碼,發(fā)現(xiàn)了一些蛛絲馬跡。
在答案網(wǎng)頁(yè)的源代碼一百九十行到二百行左右,有這樣一段JS代碼,上面的注釋直接告訴了我們這個(gè)函數(shù)的作用,就是用來(lái)下載資源的!
//下載資源增加下載次數(shù)
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;
}
}
});
}
稍微分析一下這段代碼,里面套了一個(gè)json,有一個(gè)success,對(duì)應(yīng)的值是一個(gè)函數(shù),如果bool為true,會(huì)得到一個(gè)location,根據(jù)這個(gè)location的URL結(jié)構(gòu)來(lái)判斷,這應(yīng)該就是一個(gè)下載鏈接。
"http://abook.hep.com.cn:80/downLoadResouce.action?resourceInfoId=" + resourceInfoId + "&resourceUrl=" + resFileUrl;
不過(guò)我們發(fā)現(xiàn)想要拼湊出這個(gè)URL還需要兩個(gè)參數(shù),resourceInfoId和resFileUrl這兩個(gè)參數(shù)也是最開(kāi)始函數(shù)的參數(shù),看變量命名的含義,大概猜出是資源的編號(hào)和文件URL。
那我們就直接開(kāi)啟F12搜索一下吧(我這里使用的是火狐瀏覽器)。找不到按回車(chē),直到找到了這樣一段代碼。
看樣子應(yīng)該是得到了resourceInfoId=5000093767
接著去找resourceUrl,但發(fā)現(xiàn)找不到,難道并不需要這個(gè)參數(shù)?
于是先放棄對(duì)resourceUrl的研究,先試著拼湊URL
http://abook.hep.com.cn:80/downLoadResouce.action?resourceInfoId=5000093767
發(fā)現(xiàn)可以直接下載,也就印證了剛才的猜想,這樣下載鏈接的格式已經(jīng)能夠確定
http://abook.hep.com.cn:80/downLoadResouce.action?resourceInfoId=**********
只需要向我之前那樣登錄進(jìn)入課程獲取對(duì)應(yīng)資源的resourceInfoId,然后填到上面的URL上,就大功告成!
總結(jié)
以上是生活随笔為你收集整理的下载Abook 高等教育出版社网站资料的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。