一、背景

又快到了期末复习周,这个学期学了一门操作系统,老师没有给课本习题的答案,说是配套网站上有,我看了一下,确实有,是高等教育出版社的数字课程网站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. 推荐几个不错的console调试技巧

    在我们的日常前端开发中,使用最频繁的莫过于使用console.log在浏览器的控制台中打印出我们需要调试的信息,但是大部分人可能跟之前的我一样,没有意识到其实console除了log方法以外,还有很多 ...

  2. leetcode105 从前序与中序遍历序列构造二叉树

    如何遍历一棵树 有两种通用的遍历树的策略: 宽度优先搜索(BFS) 我们按照高度顺序一层一层的访问整棵树,高层次的节点将会比低层次的节点先被访问到. 深度优先搜索(DFS) 在这个策略中,我们采用深度 ...

  3. 1sql

    ------------------ MySQL 服务-- sudo service mysql start/stop/restart/status ------------------ 数据库相关的 ...

  4. scrapy框架介绍及安装

    什么是scrapy框架? scrapy框架的安装 1.windowes下的安装 Python 2 / 3升级pip版本: pip install --upgrade pip 通过pip 安装 Scra ...

  5. scikit-learn文本特征提取之TF-IDF

    TF-IDF(term frequency–inverse document frequency)是一种用于资讯检索与文本挖掘的常用加权技术. TF-IDF是一种统计方法,用以评估一字词对于一个文件集 ...

  6. ganglia 一站式部署

    1    ganglia集群监测系统简介 1.1        ganglia简介 ganglia是一款为HPC(高性能计算) 集群设计的可扩展性 的分布式监控系统,它可以监视和显示集群中节点的各种状 ...

  7. JavaScript-----2初识

    1.介绍 JavaScript是一种运行在客户端(自己的电脑上)的脚本语言不是在服务器上 脚本语言:不需要编译,运行过程由JS解释器(js引擎)逐行进行解释并执行 JavaScript不仅可以做前端编 ...

  8. 关于C语言中i++和++i的区别以及printf输出的一些问题。

    a_pos = a++; //后缀,使用a的值之后,递增a b_pre = ++b; //前缀,使用b的值之前,递增b a--和--b同理,不必赘述.这是几乎每个学习过C语言的同学都会知道的,而我在帮 ...

  9. 安装部署MySQL主从复制

    Environment:{ CentOS 7 两台  安装MySQL(mariadb  mariadb-server) } !!!关闭防火墙SELinux 1.查看版本信息 2.启动mysql服务,查 ...

  10. gitbook 入门教程之增强版 edit-link-plus 编辑此页插件

    Gitbook plugin add "edit this page" link, and intelligent recognition to Github or Gitlab ...