打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
中国知网论文批量下载工具(免费使用)
(2011-10-28 21:05)
分类: 设计开发
中国知网CNKI并不支持批量下载,但有时却需要此功能。这几天在家,上网不太方便,不能一篇一篇的去下载,想把搜索到的文章批量下载。在网上搜了搜这方面的工具,是有几个,但要收费,还是自力更生吧。想到前段做的新浪博客统计小程序(http://blog.sina.com.cn/s/blog_67532f7c0100yi4l.html),可利用此思路来做个CNKI的批量下载工具。基本思路是分析文献查询后的结果页面,把所有文章的下载地址给分析出来,再将其下载。需要试用该工具的朋友可留下邮箱地址(回复此文即可,不要发博客留言)。
[2012-5-14]淘宝上有人出售此软件,或是使用此软件批量下载的期刊。在此再次声明,本程序只是减少文献下载时的点击之苦,切勿用于商业用途,请慎重使用。本程序也不会提供无账号下载功能,已暂停对本程序的的更新,如果实在觉得使用太麻烦,那就请卸载了吧。
[2012-5-4]cnkiforpdf已能将分析结果保存到本地,可从数据管理界面进行选择性下载。解决文章标题小于10时被跳过下载的问题。
[2012-3-5]如果只想下载某期刊全年的文章,可参看此:批量下载全年期刊的方法
[2012-3-6]推出特别版,支持下载PDF格式。可参看:中国知网期刊总库PDF下载
知网推出的批量下载工具:http://www.cnki.net/software/study.htm#1
[使用时,切勿贪“快”,避免下载不完整,或是IP被禁用。时间间隔的设置依据你所处的网速而定,我一般是设置20s。如果下载速度快,间隔就设置长,如果下载速度慢,则间隔可短些。知网是有连续下载的时间限制,为了安全使用,请勿超速。]
[2012-3-26]下载的时候,有时会出现有文件夹的情况,这主要是因为在给文件命名的文件名里头有“/”字符,结果被当做文件夹路径了,比如“面向B/S的。。。”,这个文章就会生成文件夹“面向B”,而后里面的文章是“S的。。。”。解决办法是在采集文章标题时,把一些特殊符号给去除掉。(未改)。
[2012-3-25]在进行大批量下载时(比如一千条记录以上),就算是已合法登录,也仍然会碰到.5下载失败的情况,这主要是由于连续下载过多,CNKI会提示诸如“对不起,你的操作太过频繁”的错误,然后需要重新退出登录才能下载。目前已在CNKI批量下载特别版(优硕库)中解决此问题,即当出现错误提示后,自动注销又再自动登录。
[2012-3-24]CNKI博士库特别版实现导入下载列表后下载,这样就不用每次都分析页面了,直接从URL下载。
[2012-3-7]CNKI-Elearning支持的cnt格式是文本形式的XML文件,里面包含了很多信息,包括下载页面。将来可以从这里获取文章的元数据,省去分析页面所花的时间,效率定会提高不少。
[2012-3-6]有时下载的文章太多,时间长了,就有不少文章下不来了,都成了.5的,那可能是在页面上长时间不操作,账号自动退出了。
[2012-3-1]对有些完全有权限下载的文章,在连续下载时会有下载不了的情况(下载的文件名后缀如.5),但单独下载是可以的。这可能是因为网络原因下载失败之后,程序不再继续尝试下载该文章了。这要增加个校验的功能,对于搜索到的文章是否是完整下载到硬盘上进行检查。这对于收集成套的期刊之类是用法是需要的。
[2012-3-1]有的网友反映下载到一半之后停电或者系统死机什么的,又得重头开始下载,这个太耗时了。目前的确没有选择下载,或是下载状态保存的功能,下一版本要添加。更多的人希望提供PDF下载,因为从KDH之类的格式转换到PDF后就只是个图片而已,无法进行复制粘贴。嗯,这个很早之前就有人强烈要求了,技术上的思路也早就有,但,,一种所谓“残缺之美”吧,先凑合着用,还是待下一版推出吧,前提是“如果还有下一版”。
[2012-2-27]下其指定期刊的方法。可在查询条件页面的“文献出版来源”输入期刊名,比如“社会学研究”,再在“发表时间”处选择起始日期,比如想下载2012年第一期的,就设置2012-1-1,2012-1-31。如果想下载全年的,就设置2011-1-1到2012-1-1。
[2012-2-27] BUG。有些可下载的文章,下载后显示0KB,但在网页中是可以正常下载的。其原因原来是该文章的标题含有一些特殊字符是WINDOWS文件名不允许的,所以以标题做为文件名生成文件时发生了错误,文件就保存不下来,显示为0KB了。解决方法需要在程序中生成保存路径的时候,把文件名中不被WINDOWS接受的字符先过滤掉。这个在写anSpringer下载器时已处理,可参看。(2012-2-27fixed)
[2011-12-14] 希望能支持维普数据库。这个的确可以考虑,反正是同样的方法。UI要改改,毕竟不少用户并不关心分析的过程。现在这个用户界面比较乱的原因主要是为了方便调试而已。如果把这些分析过程,隐藏起来,那用户界面就可以做得更简洁,操作起来就更方便了,而且不用HTML组件,更能提高性能。
[2011-12-12]两个新的建议:1、“无账号”下载。这个朋友 说可提供有效的知网账号,只要在程序中从远程读取账号及密码在程序后台自动登录,就算是实现了“无账号”下载。“无账号”只是相对于用户来说,因为用户不 需要登录知网了,而是由程序自动从远端获取可用的账号来登录。这一过程是不需要用户参与的,而账号密码也是会及时更新,保持总能获取可用的账号。该功能不打算做,毕竟这涉及到知识产权的问题;2、期刊 下载。这个功能看似挺实用的。比如说有人想要下载《中国电化教育》的所有电子档,虽说现在可以从查询页面的“文献来源”输入关键词,从时间范围输入要下载 哪一期,但下载回来的文章并无组织结构(意指所有文章全放到一个文件夹里),不方便管理。如果提供界面,请界户输入期刊名,选择期号,即可将该期的全部文 章下载,或是下载某年度的所有期号,或是某期刊多年来的所有文章,而下载回来的文章按年/期/的组织形式存放好,这样就好收藏了。
[2011-11-28]有网友反馈目前的版本不能换库,换库之后无法分析地址。原因有可能是查询的结果页面HTML内容有变化,但更可能是一些相关链接的路径写死在程序里头,导致适应不到不同的库。这个问题先记下,过段有时间再修改了。
[2011-11-09]文献检索结果的表格,不提供pdf格式的直接下载,想要下载PDF格式,可以进入其详细页面,再分析出pdf格式的下载地址,其处理方式类似分析硕士库中论文的方式(硕士库的文章在文献检索结果中也不提供直接下载,只在一个在线阅读的链接)。不同的是在详细页面中硕士库文章分析的目标元素是“整本下载”,而PDF文章要分析的目标元素是“PDF下载”。
[2011-11-07]在批量下 载的文件中,有些文件无效的,主要有几种情况,1、有文件名,无后缀名。这种情况主要是在检索结果页面里的下载链接是一个在线阅读的链接 readonline.asp.caa,并不是真实的下载路径。解决方法是通过其详细链接地址,进入论文的detail.aspx页面,在其内容的“整本 下载"处获得其真实下载地址。这种情况主要是来自中国优秀硕士学位论文全文的数据库。2、后缀名为.5和.0的文件。这种情况是服务器返回来的不是文件地 址,http包头中的Content-Disposition字段信息是WEB服务器的版本,比如IIS7.5或IIS7.0。解决方法也还是像问题1那样,进入详细页面中重新分析其下载地址。
[2011-11-05]由于anCNKI一直是在旧版的平台中调试,有网友反映anCNKI不支持新版的平台,今天试了试,果然不行,新平台的部分页面信息已有变动,改了改相关的代码,重新发布了一个版本anCNKI for grid2008。
该工具由于只是利用闲暇时间写的,并没有进行充分的测试,也没有提供更易操作的UI,而有时会出现有部分文章下载不了的情况,做得还不是很完善,待将来有了更多的闲暇时间,逐步完善吧。
在此就记下一些笔记。
1、开发工具及相关类
FlashBuilder , Flex SDK4.5 , AIR ,URLStream ,要分析http头(URLLoader的ResponseHeaders)
1、分析页面
分析的页面是中国学术期刊网络出版总库:http://acad.cnki.net/Kns55/brief/result.aspx?dbPrefix=CJFQ,也可以选择其它库;
2、结果页面
CNKI的页面使用的是frame,单从主页面是获取不到查询结果的页面的,通过firefox的firebug及webdevelpoer等工具来辅助找到结果frame的src为:http://acad.cnki.net/Kns55/brief/brief.aspx?&PageName=ASP.brief_result_aspx&DbPrefix=CJFQ&DbCatalog=中国学术期刊网络出版总库&ConfigFile=CJFQ.xml
3、分析结果表格
这里需要两个信息,一个是下载的地址,一个是文章标题(作为文件名)。下载地址有如:href="../download.aspx?filename=aNDMmx0Yr90bqZFSUxEasxUazETY3QWb4R2KYF0cWZ1R3RWW3Rma4RndxtyRaBFaXJEdysWWn12dYdXakZnb34UcUx2bQJEazt2N3czbXxkWhN1azoXME5WR38GV0VDb0QjaaZlTL9WOvJzTxt2YJVzbwMHcPVja&tablename=CJFD0608
文章标题可分析表格中的“篇名”列。
4、下载文件
FlexSDK4.5中有多种下载方式,可以使用URLStream按二进制方式下载,在此使用URLLoader(其实也是用到URLStream),当下载完成后,再使用FileStream将二进制文件写到硬盘上。
5、下载文件名
光有文件名还不行,还需要知道下载文件的后缀名,知网上主要有kdh和caj(pdf不能从查询结果页直接下载),虽然通过URLLoader的HTTPStatusEvent.HTTP_RESPONSE_STATUS事件可以从responseHeaders中获得下载的文件名,但由于乱码,在FLEX中还找不到好的办法来处理,故而在responseHeaders分析出http头的Content-Disposition字段,获得其filename,析出后缀名,再与之前的文章标题结合起来形成文件名。
6、下载时设置了个延时,避免连续下载,会被服务器检测出,IP被封。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
20个免费论文下载入口!含免费知网、万方、维普账号!
基本代码安全知识
什么是文件的后缀名?如果得知文件的后缀?
想要手机照片转换成pdf免费?图片转pdf免费完成
win10下如何快速提取所有文件名?成千上万一秒搞定!
文件上传绕过(旧)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服