找回密码
 注册
搜索
热搜: 超星 读书 找书
查看: 160|回复: 4

对金华广播电视大学数字图书馆的补充

[复制链接]
发表于 2005-2-28 14:16:13 | 显示全部楼层 |阅读模式
下面是引用jdcjdc于2005-02-27 16:03发表的金华广播电视大学数字图书馆:
  金华广播电视大学数字图书馆
http://218.75.103.83:8080
大量的PDF图书
这个镜像为了防止批量下载,采用了下载地址服务器端编码的技术,连接中给出的bookid是图书代码经过计算后给出的数字,服务器得到下载指令后又将bookid逆向计算成图书编码,上传图书。

对于这类编码方式,我们可以先用IE打开比如“文学类”网页,看一下总页数,不要关闭IE,然后打开FlashGet,设置批任务:

http://218.75.103.83:8080/treeview?pageid=(*)

这里要注意设置:超时 连接300;数据300;最多同时进行的任务数 1;重试的次数 0

提取下载下来的网页中的数据,就得到了图书的bookid,便可以批量下载了。如果我们只对pdf文件感兴趣,那么下载命令为

http://218.75.103.83:8080/book.pdf?bookid=xxx

写入文本文件,打开FlashGet,全选文本文件,复制,FlashGet就会自动将下载地址输入。

要注意的是,计算编码时用的参数每天零点变更,这个参数可以是随机的,没有规律。因此,图书的bookid只在零点以前有效,你别想指望完整下载,除非你能在零点以前下载完毕。但设计人员却给出了一个每本书的特征参数“文件长度”,这不能不说是一个漏洞。

所以,我们在提取数据时,要取得书名、文件长度和bookid这三个数据。建立第一个数据表格。每天零点以前下载下来的图书要编程处理一下,生成文件名和文件长度这两个参数,建立第二个数据表格,并增加书名/作者数据。由于这其中也有重复的文件长度,所以要把重复的文件长度剔除(设一个结构相同的表格,将文件长度设为不可重复,把数据复制过去,文件长度重复的数据就留在“粘贴错误”表格中了,把它改个名作为备份),然后把这两个数据库配对,就得到了已经下载的文件,将第一个表格中的书名/作者粘贴到第二个数据表格中。如果第二个数据表格中的书名/作者不为空,表明下载已完成。

第二天重新做第一个数据表格,增加一个标识参数,和第二个数据表格配对,将第二个数据表格中的文件名粘贴到该标识参数中,然后将第一个数据表格中标识参数不为空的数据删除,对剩下的连接继续下载,直到下载全部完成,再用同样的方法下载其他分类的图书。

必须要指出的是,这个图书馆除了小说之外,没什么值得下载收藏的。这里介绍的,只是对该数图的防范措施的一种挑战,用的是很简单的方法。前面已经说了,它的漏洞就是给出了精确的文件长度。

有个别图书的文件长度正好相同,自然用这种方法会漏掉个别书,但概率应该是很小的。
回复

使用道具 举报

发表于 2005-2-28 14:55:31 | 显示全部楼层
bookish现在又喜欢上pdf的书了?如果那些书超星里面有还是下载超星可能是更好的选择吧,毕竟下载超星方便得多。
回复

使用道具 举报

 楼主| 发表于 2005-2-28 15:12:32 | 显示全部楼层
回注册兄,小说还是pdf的好,一个晚上一万本小说,也就5张光盘,这是pdg所不能比的。物质好奇,这些pdf小说是谁制作的。另外,这些pdf文件设置了口令,不知谁能破解他们的口令。
回复

使用道具 举报

发表于 2005-2-28 16:13:11 | 显示全部楼层
下面是引用bookish于2005-02-28 15:12发表的:
回注册兄,小说还是pdf的好,一个晚上一万本小说,也就5张光盘,这是pdg所不能比的。物质好奇,这些pdf小说是谁制作的。另外,这些pdf文件设置了口令,不知谁能破解他们的口令。

回bookish,pdf文件设置了口令,不难解决,找工具破一下就行了。
回复

使用道具 举报

 楼主| 发表于 2005-2-28 17:18:34 | 显示全部楼层
http://www.ttxx.com/Software/Catalog292/15173.html
试过了,很方便,谢谢dogpile。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|网上读书园地

GMT+8, 2026-3-30 01:34 , Processed in 0.096959 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表