VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 123319|回复: 157

[原创] 人民教育出版社电子课本下载程序[开源]

  [复制链接]
 楼主| 发表于 2009-8-9 17:18:56 | 显示全部楼层 |阅读模式
本帖最后由 新林 于 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

评分

参与人数 20威望 +62 人气 +13 收起 理由
gxg1122 + 2 + 1 赞一个!
shanhan + 2 + 1 赞一个!此贴必须顶。下完了就要顶起
yuwentao4761 + 1 赞一个!
penghui86 + 1 很给力!
a181419153 -1 为什么不能下载啊啊啊啊,真是令人蛋疼,我
jixu2008 + 4 发布源码
414664902 + 1 实用
gdsdljg + 1 不错,学习拉
xjgh + 5 + 1 好新林
妮可宝贝 + 5 + 1 向新林老师学习!!
ouyangff + 5 + 1 在生活中找课题,思路好,工具妙!
gbm + 5 + 1 原创内容
daixinhou + 5 发布源码
ddd589 + 1 + 1 源码真好!!!
bz3zwy + 5 + 1 精品文章
阳光宝宝 + 1 + 1 好东西,学习了
hfcas + 2 发布源码
ok100fenkeke + 8 开源加分
bbadsl + 7 + 1 原创内容
ylzsx + 5 精品文章

查看全部评分

本帖被以下淘专辑推荐:

发表于 2009-8-9 17:39:08 | 显示全部楼层
第一个下了,谢谢新林,主要是想学习一下源码!

评分

参与人数 1人气 +1 收起 理由
新林 + 1 沙发,奖励1个人气分~~ ^_^

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2009-8-9 18:01:55 | 显示全部楼层
我也去那里看看有没有我要看的书,感谢了
回复 支持 反对

使用道具 举报

发表于 2009-8-9 18:02:10 | 显示全部楼层
按道理,数学和英语是学好编程的基础,但新林老师编程水平这么高,却说数学和英语基础不好,有点儿理解不了???还说是在自学大专课程,但我感觉你已经是大学教授水平了,这年月太多不理解了。。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-9 18:21:45 | 显示全部楼层
按道理,数学和英语是学好编程的基础,但新林老师编程水平这么高,却说数学和英语基础不好,有点儿理解不了???还说是在自学大专课程,但我感觉你已经是大学教授水平了,这年月太多不理解了。。。。
ylzsx 发表于 2009-8-9 18:02


你太过奖了,其实我编程水平也还不算高,我也一直都在学习之中。
你说得没错,数学和英语是学好编程的重要基础,只有这两门学好了,在编程的这条路上才能走得更远,更深入~~
英语呢,之前在学校确实是学得很差,根本没用心学,后面毕业之后,在学习编程的过程中,知道英语的重要性,有时候就会学习下,但一直到现在,都还是很不够的,上英文网站感觉还会比较吃力,还是需要借助翻译网站或词典软件。
数学呢,小学学得相当好,初一的时候也是良好,可到初二开始,好像就比较差了,现在回想起来也说不起是什么原因,不知道是否和自己以前初中读书时,不在父母身边,而是寄居在亲戚家读书有关系~~

总之,就是还不够,还要好好学学这两门课,因为数学学得不太好,所以算法也是我的弱项,我必须克服它~~
努力学习~~~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-9 18:26:10 | 显示全部楼层
程序还是有些不完善的地方,正在下载时退出程序的话,好像并没有完全退出~
另外,在继续下载电子课本的过程中,又发现一些图片的地址和前面关键字是不相同的,边下边改,到时改好再更新一份源码上来~
回复 支持 反对

使用道具 举报

发表于 2009-8-9 18:37:54 | 显示全部楼层
新林老师:听说你正在学习算法,我也想学习,不知你有没有学习用的插值方法电子书,比如我要画一些点组成的平滑曲线要用的三次样条或牛顿法、最小二乘法等,本论坛有个三次样条插值法可我没有太看懂,所以想从基础教程学一下,你要是有这样的实例可否提供学习一下,因为你的讲解由浅入深更容易接受,是不是有点儿脱离本主题了。。。我知道插值算法是研究生课程,可用到了,没办法只想硬着头皮学习了。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-9 18:50:03 | 显示全部楼层
新林老师:听说你正在学习算法,我也想学习,不知你有没有学习用的插值方法电子书,比如我要画一些点组成的平滑曲线要用的三次样条或牛顿法、最小二乘法等,本论坛有个三次样条插值法可我没有太看懂,所以想从基础教 ...
ylzsx 发表于 2009-8-9 18:37


不好意思,算法是要学习,但我现在并没有在学习算法,你说的这个插值方法我也不太了解,这个还是要靠你自己去网上搜索相关资料~~

ps:不用在我名字后面加上老师这两个字,确实受不起,直接叫我新林就好了,谢谢~:)
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2009-8-9 19:16:30 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

发表于 2009-8-9 19:37:16 | 显示全部楼层
谢谢版主分享!

评分

参与人数 1人气 +1 收起 理由
penghui86 + 1 很给力!

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2022-6-26 04:58

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表