一、背景

又快到了期末复习周,这个学期学了一门操作系统,老师没有给课本习题的答案,说是配套网站上有,我看了一下,确实有,是高等教育出版社的数字课程网站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上,就大功告成!

下载Abook 高等教育出版社网站资料的更多相关文章

  1. python全栈开发day61-django简单的出版社网站展示,添加,删除,编辑(单表的增删改查)

    day61 django内容回顾: 1. 下载: pip install django==1.11.14 pip install -i 源 django==1.11.14 pycharm 2. 创建项 ...

  2. 一个快速搜索下载jar包的网站

    在偶然的机会,我一个快速搜索下载jar包的网站.里面涵盖了所有的几乎全世界开源的jar包,感觉这个功能特别适合java.android开发者使用,共享出来給大家悄悄. 百度一下:manyjar,就可以 ...

  3. joomla学习网站资料

    http://joomlaol.com/joomla-chinese/joomla-study/340-joomla-skills.html joomla的强大相信学过和用过joomla的童鞋都知道吧 ...

  4. Mac破解软件下载的几个网站

    一.关于破解(盗版)软件的个人看法(可忽略,网址在文末): 1.在经济(预算)允许的范围内,尽量支持正版: 2.软件如衣服,在不同的季节,不同的店铺买价格不一样,国内的一些代理网站经常会打折: 3.作 ...

  5. wget断点续传下载需要登录的网站上的大文件

    1 举个例子 xcode 2 方法 wget --load-cookies=cookies.txt  -c url -c是断点续传,如果网络断了,再运行该命令会接着最新的下载继续下载. --load- ...

  6. Python网络编程基础|百度网盘免费下载|零基础入门学习资料

    百度网盘免费下载:Python网络编程基础|零基础学习资料 提取码:k7a1 目录: 第1部分 底层网络 第1章 客户/服务器网络介绍 第2章 网络客户端 第3章 网络服务器 第4章 域名系统 第5章 ...

  7. Android源代码下载以及异常查找网站推荐

    源代码下载:https://github.com/ 异常查找:http://stackoverflow.com/

  8. ASP.NET Core 返回文件、用户下载文件,从网站下载文件,动态下载文件

    ASP.NET Core 中,可以在静态目录添加文件,直接访问就可以下载.但是这种方法可能不安全,也不够灵活. 我们可以在 Controller 控制器中 添加 一个 Action,通过此Action ...

  9. 下载YouTube视频的网站和工具

    1.界面友好,可选择的清晰度较多(我个人用这个比较多) http://en.savefrom.net/ 2.几乎可以解析到所有的清晰度 http://www.clipconverter.cc 3.可选 ...

随机推荐

  1. C语言与汇编语言混合编程实验

    混合编程方法: 模块链接法 汇编指令嵌入法 1: 模块链接法则 模块链接法是指分别用汇编语言和C语言实现独立的模块(或子程序),再用链接程序把各模块生成的obj文件连接成一个可执行程序. 1:C语言调 ...

  2. 二叉查找树的平衡(DSW算法)

    树适合于表示某些领域的层次结构(比如Linux的文件目录结构),使用树进行查找比使用链表快的多,理想情况下树的查找复杂度O(log(N)),而链表为O(N),但理想情况指的是什么情况呢?一般指树是完全 ...

  3. SpringCloud Sleuth + Zipkin 实现链路追踪

    一.Sleuth介绍   为什么要使用微服务跟踪? 它解决了什么问题? 1.微服务的现状?   随着业务的发展,单体架构变为微服务架构,并且系统规模也变得越来越大,各微服务间的调用关系也变得越来越复杂 ...

  4. Java标识符(Identifier)(关键字和保留字)

    Java标识符(Identifier) 1. 只能由英文字母(A~Z)或(a~z).下划线(_).美元符号($)和数字(0~9)组成,且开头不能为数字. 2. 区分大小写! 3. 无长度限制! _3_ ...

  5. Spring Boot整合Servlet、Filter、Listener

    整合 Servlet   方式一:   编写 servlet package com.bjsxt.controller; import javax.servlet.ServletException; ...

  6. Cookie俩步操作实现n天免登陆

    实现这个功能主要思路是:在登录成功的时候去给用户名和密码加上Cookie,将他们的值存在Cookie中,为了下次登录记住用户名和密码,然后在登录界面,获取所有的cookie,然后将值一一遍历出来.和用 ...

  7. [TimLinux] JavaScript 如何在html标签的data-*属性使用JSON数据

    1. HTML data-*属性 H5引入的data-*属性,可以在JavaScript通过.dataset.*的方式来获取属性的值,例如: /* HTML标签: * <input id=&qu ...

  8. C++fread小解

    std::fread ——C++ 输入/输出库 C 风格 I/O 定义于头文件 <cstdio> std::size_t fread( void* buffer, std::size_t ...

  9. 洛谷 题解 P3385 【【模板】负环】

    一.声明 在下面的描述中,未说明的情况下,\(N\) 是顶点数,\(M\)是边数. 二.判负环算法盘点 想到判负环,我们会想到很多的判负环算法.例如: 1. Bellman-Ford 判负环 这个算法 ...

  10. numpy的基本API(三)——索引

    numpy的基本索引API iwehdio的博客园:https://www.cnblogs.com/iwehdio/ 1.单个元素的索引 对于一维数组,索引方式与内置的List相同.正索引从0开始,负 ...