|
本帖最后由 新林 于 2009-8-9 21:41 编辑
人民教育出版社电子课本下载程序
我之前几天就开始出现一个想法,把初高中的数学和英语教材再抽时间好好复习一下,顺便找点当初在学校读书的感觉,很温馨的感觉~~~:)
可是过去的时光都已经过去,再也不会回来了~~~~
之所以想复习这些中学的数学和英语教材,有一个原因就是以前中学数学和英语学得比较差,尤其是英语,主要是当时学的时候没怎么用心。还有一个重要原因是现在自考大专还有数学和英语这两门课程,它们的学分几乎是最高的,难度相对来说也是最大的,不复习一下以前中学的数学英语,我想我是很难过关的。
有了这个想法后,就在网上找中学数学英语教材下载,找来找去都没找到完整的,就只有 www.pep.com.cn 人民教育出版社 的网站上有全部中学的所有教材的电子课本在线看,但它没提供电子课本下载,就只能在线浏览电子课本图片,开始我试着手动来一页页的下载图片,才下几十页就我的手给累坏了,还是写个小程序来整本下载吧~~
现在的中学课本竟然都是彩色的,看起来好精美啊~~相比,以前我们的教材都是黑白的,也没这么有趣味性~~感叹~~
使用本程序,一次就能下载一本电子课本的所有图片,避免手动下载图片所耗用的巨大精力~~
最先的想法是:根据电子课本第1页的网页地址,下载网页,获取其中的图片名称地址,下载图片,再获取下页的链接地址,再下载网页,如此循环,直到到达最后一页。
可是分析后发现,网站电子课本网页的下一页链接是即时生成的,不是单纯的静态HTML页面,所以直接下载网页是无法取得下一页的网页地址的。而且我发现,上下页的页面地址也不是连续的。
我想通过抓包来看看具体情况,用抓包方式果然看到想要的结果了,通过send,GET /czsx/jszx/qnjsc/7akb/index_1221.xml?rand=0.923838070313323,获取一个xml文件,里面包括这本电子课本每一个页面的地址。
再查看网页源代码,里面有XML文件的地址,var XML_FILE = '../index_1221.xml';就直接把那个XML文件下载下来,果然有整本书网页的HTM链接,不过这需要解析XML文件来获取全部的HTML链接。在VB中引用Microsoft XML, v3.0,可以很方便的解析读取XML文件。
获取全部页面地址后,后面的工作就比较简单了,循环下载每个网页,获取到图片地址,下载图片,就完成了~
在发布上来之前,我已经下载了好几本电子课本,测试没发现什么问题,可以正常使用~
但不保证全部电子课本都能正常下载,可能一些网页中获取图片的关键字又不一样了,不过那样问题都不大,稍微分析下,改两句代码就行了~~
------------------------------------------------------
已经更新了附件,之前发的旧附件删掉了。源码改进了一些,现在我已经用它下载了初中英语,初中数学,高中数学全部电子课本,都下载完整了,没再碰到获取不到图片文件名的问题。相对之前的程序来讲,完善了一些。
另外,偶尔有些电子课本有缺页的现象,这是因为网站提供的就是这样,这是没办法的,但这是确实是少数,大部分电子课本都是完整的。
小技巧:一次只下载一本电子课本,是否觉得有点慢呢,可以把程序多运行几个进程,这样就能同时下载几本电子课本了,我只试过最多开3个进程,也不建议开太多进程,两三个已经足够了。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
评分
-
查看全部评分
|