半自动批量下载IEEE文献

因为一直在外边联合培养,无法使用学校的数据库,所以下载文献一下子从最简单的事情变成最复杂的事情。
首先想到的方法是学校放一台电脑,然后开teamviewer,远程操控,但公司和学校的双重烂网速让这件本来很简单的事情变得困难重重。
所以想到了绕个捷径通过http://sci-hub.cc/这个网站实现IEEE文献的下载。奔跑着歌颂一下这个俄罗斯大神搭建的网站,它可以让所有人通过该网站下载到大部分文献。
比如我要下载这篇文献,http://ieeexplore.ieee.org/document/6714990/,将网址复制到该网站,就会生成该论文的pdf,点击保存一下即可,仔细看一下,其实网址有了稍微一丁点变化,http://ieeexplore.ieee.org.sci-hub.cc/document/6714990/,加上了.sci-hub.cc,在网页审查一下元素发现下载地址(后缀名是.PDF)的那个就在这里摆着
这里写图片描述
这就简单了,首先将你在ieee官网上想要下载的多个文献的网址复制下来,每一个网址后面加上.sci-hub.cc,解析每一个新的网址,寻找.pdf的链接,获取真实的下载地址。
code:

#第一次变换地址
lines=open('d:/list.txt').readlines()
fp=open('D:/list.txt', 'w')
for s in lines:
       fp.write( s.replace('org','org.sci-hub.cc'))   
fp.close()
#解析出真正的下载地址
import re
import urllib.request
# ------ 获取网页源代码的方法 ---
def getHtml(url):
    page = urllib.request.urlopen(url)
    html = page.read()
    return html
f=open('d:/list.txt')
for line in f:
    html = getHtml(line)
    html = html.decode('UTF-8')
    reg = r'src = "(.*?\.pdf)"'
    PDFre = re.compile(reg);
    PDFlist = re.findall(PDFre, html)
    print(PDFlist)
f.close()

使用方法,新建一个txt文档,将要下载的文献地址复制过来
这里写图片描述
运行程序,就会生成真正的下载链接
这里写图片描述
复制一下打开迅雷,直接批量下载了
这里写图片描述

如果没有迅雷,可以使用python实现wget完成下载,加入代码

import sys,urllib
def reporthook(*a): print(a)
for url in sys.argv[1:]:
    i=url.rfind('/')
    file=url[i+1:]
    print(url,'-->',file)
    urllib.request.urlretrieve(url,file,reporthook)

enjoy it!
最后借用互联网之子亚伦·斯沃茨的一句质疑:科研,如果用的是纳税人的钱,为什么最后的成果不能被我们纳税人自由地获取?获利的却是出版商呢?

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值