| 查看: 127 | 回复: 4 | ||
| 当前主题已经存档。 | ||
| 【悬赏金币】回答本帖问题,作者xusongwhy将赠送您 20 个金币 | ||
xusongwhy铁杆木虫 (著名写手)
|
[求助]
请问如何下载电子书
|
|
| 我用帐号进入NETLIBRARY 或 QUESTIA 下书,总是一页页下载复制到WORD里,有没有方法可以整本下载呀?哪位兄弟知道呀? |
» 猜你喜欢
拟解决的关键科学问题还要不要写
已经有8人回复
存款400万可以在学校里躺平吗
已经有28人回复
最失望的一年
已经有11人回复
求推荐英文EI期刊
已经有5人回复
请教限项目规定
已经有4人回复
国自然申请面上模板最新2026版出了吗?
已经有20人回复
26申博
已经有3人回复
基金委咋了?2026年的指南还没有出来?
已经有10人回复
基金申报
已经有6人回复
疑惑?
已经有5人回复

daixj21
木虫 (知名作家)
小木虫税务总局局长——水虫
- 应助: 0 (幼儿园)
- 贵宾: 0.01
- 金币: 3143.4
- 散金: 742
- 红花: 9
- 沙发: 9
- 帖子: 8361
- 在线: 304小时
- 虫号: 447796
- 注册: 2007-11-01
- 性别: GG
- 专业: 聚合物共混与复合材料

2楼2007-11-11 19:49:22
nucleus01
至尊木虫 (著名写手)
小木虫北庭节度使
- 应助: 0 (幼儿园)
- 贵宾: 0.11
- 金币: 15488.1
- 红花: 1
- 帖子: 2930
- 在线: 108.4小时
- 虫号: 165700
- 注册: 2006-01-13
- 性别: GG
- 专业: 物理
|
netlibrary上的书籍分pdf版和html版,其中pdf格式下载要相对容易些,基本没有二次认证的问题,html版的二次认证问题就比较多了,我以后再介绍。 用到的工具:Microsoft Internet Explorer 6.0版以上,Mouse and Key Recorder 5.0版以上。 简要说明:我用的是XP自带的IE6.0,有个好处我稍后会说明;M&K Recorder必须5.0以上,否则有个重要的功能没有,另外,M&K Recorder的脚本功能非常强大,适当编辑几乎可以做任何重复性的工作。 netlibrary上的pdf书籍的格式是:http://www.netlibrary.com/nlread ... leName=Page_YYY.pdf XXXXX代表书籍代码,YYY代表页码,由于页码是变量,所以url.txt文件里我们写http://www.netlibrary.com/nlread ... &FileName=Page_就可以了(XXXXX要改为你想下的书籍代码,Page后有个下划线,Page_),剩下的会在脚本里自动添加; 脚本编写: 〔注意〕由于我用的是屏幕绝对坐标,所以脚本中有关鼠标位置是和显示器分辨率相关的,我是按照1152X864的分辨率设计的,各位用的时候要参考自己的具体情况更改。 1. netlibrary_pdf.krc 这个script的作用是自动按顺序下载netlibrary上某部书的每一页。首先我们假设有本书共有650页,我们把它保存在c:\\netlibrary目录下。 {{\\\\\\\' //后面的语句不是脚本的注释格式,应用时要去掉 {{If {{FindFile C:\\netlibrary\\650.pdf} = {{True};{{Exit}; //这句用来控制下载结束,当然也可以用循环数loop来控制,但有时候意外中断要从中间开始,loop值往往会忘了改,加上这句就不用担心了,也省了计算loop的麻烦。 {{SetString1} URL //URL为书籍网址,将它保存在字符串变量string1中 {{Offset {{clipboard} //利用剪贴板传递起始页参数,所以使用前要预先copy初始值到剪贴板中,比如从第一页开始下,就copy一个0到剪贴板里。 //offset是和loop连用的,loop值就是当前循环数+offset,比如offset设为45,现在运行第34次循环,那么loop值为45+34=79,是不是很有用 {{Switch Microsoft Internet Explorer //使IE为活动窗口,必须保证IE在运行 {{Mouse 1, 1, 585, 17, 0 //移动鼠标光标,参数依次简介:1 - 左键;1 - 单击(2为双击);585, 17 - 将鼠标光标移动到屏幕位置坐标(和分辨率有关);0 - 执行点击(1为仅移动鼠标而不点击) %d //Alt + d,焦点移到地址栏的快捷键 {DEL} {{String1} {{Loop} {ENTER} //输入网址并回车 {{label wait4win} {{Mouse 1, 1, 1129, 28, 1 {{If {{WaitForScreenChange 3,15,1} = {{True};;{{goto end} {{If {{CheckWindow 文件下载} = {{True};;{{goto wait4win} //我认为这四句是脚本的精华所在,原理是:当IE在下载网页的时候,IE窗口的右上角有个会飘动windows logo, 当网页下载完成时,这个logo就不动了,我们可以利用这一点来判断网页是否下载完毕,这时候文件下载窗口还未出现,以前用delay来判断很不可靠,容易出错,用这个就没问题了。 //WaitForScreenChange是从5.0版才开始提供的,所以低版本的就没办法了。参数简介:3 - 3秒为一个判断单位;15 - 考察当前光标位置15X15像素的变化情况,这个大小相当于标准鼠标整个三角箭头部分,不包括箭头下的柄,而且不考虑鼠标箭头的任何变化;1 - 改变了一次就认为是变化了。合起来解释为:如果在3秒内,当前光标位置后15X15像素大小的区域改变了至少一次,那么函数就返回True。 //CheckWindow是用来判断pdf是否下载完毕的,同样比delay可靠多了。 //经测试,这四句执行的效果非常理想,不论网络速度如何,它都能适应,而且在尽可能短的时间内进行下一步,但还是有可能出现问题,主要表现为漏页,分析可能就是输入网址并回车后,IE暂时没有响应,于是logo在3秒内不动,脚本就认为本页不存在(注:当原书有某一页是空白页的时候,编排需要这是有可能的,netlibrary就会省略这一页,网页上仅提示“你请求的页面不存在”,这时候CheckWindow就不能正常工作,陷于死循环,所以要加入goto end跳转),于是结束本页下载,而实际上该页是可能存在的。 s //出现下载窗口时选择保存文件的快捷键,个人感觉还是不要用回车的好 {{Delay 500} {{Loop} {ENTER} //输入文件名,并回车,这样文件名总是和页码相对应,即使有漏页也不会搞错。 {{label savepdf} {{Mouse 1, 1, 633, 352, 1 {{If {{WaitForScreenChange 3,15,1} = {{True};{{goto savepdf}; //判断pdf是否下载完毕,如果用CheckWindow的话会有问题,还是用这个比较可靠。 //下载文件时,下载窗口里有个一张纸从地球飞向文件夹的动画,当纸到达文件夹时,文件夹左上角会出现个红点, 我把鼠标就放在这个红点上。 {{label end} //本次循环结束 使用方法: 1. 禁用Acrobat的在线浏览功能,否则麻烦多多。以Acrobat 5.0为例,到编辑/首选项/选项/网络浏览器选项里,去掉“在浏览器中显示PDF”的钩选。这样IE对pdf文件就不会调用Acrobat嵌入式打开了,而是出现下载提示。 2. 运行IE并将窗口最大化,登录netlibrary,找出你要下的书的ID号以及总页数,并下载其中一页,比如cover页,这样可以生成该书的cookie信息。 3. 运行Mouse and Key Recorder,根据总页数设置循环次数,并将起始页减去一复制到剪贴板,比如你下到一半中断了,想从51页开始继续,就复制50到剪贴板中。 4. 点Play,然后就可以睡觉去了。 5. 睡醒后,看看一本书是不是乖乖得躺在你的硬盘上,然后找个软件把pdf合并一下就免费搞到一本书。爽吧! 6. 如果有漏页的,可以自己手动检查并补档,也可以写个脚本让Mouse and Key Recorder代劳,这里我就不给出了,有兴趣的可以根据前面讲的自己练练,体验一下Mouse and Key Recorder的强大。 |

3楼2007-11-11 20:00:51
chineseway
捐助贵宾 (知名作家)
离...
- 应助: 0 (幼儿园)
- 贵宾: 0.45
- 金币: 4408.4
- 散金: 3
- 红花: 1
- 帖子: 5496
- 在线: 46.8小时
- 虫号: 67083
- 注册: 2005-05-04
- 专业: 细胞生物学研究中的新方法

4楼2007-11-11 22:08:45













回复此楼