半自动批量下载IEEE文献

2023-11-30 22:40

本文主要是介绍半自动批量下载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!
最后借用互联网之子亚伦·斯沃茨的一句质疑:科研,如果用的是纳税人的钱,为什么最后的成果不能被我们纳税人自由地获取?获利的却是出版商呢?

这篇关于半自动批量下载IEEE文献的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/438815

相关文章

SpringBoot返回文件让前端下载的几种方式

《SpringBoot返回文件让前端下载的几种方式》文章介绍了开发中文件下载的两种常见解决方案,并详细描述了通过后端进行下载的原理和步骤,包括一次性读取到内存和分块写入响应输出流两种方法,此外,还提供... 目录01 背景02 一次性读取到内存,通过响应输出流输出到前端02 将文件流通过循环写入到响应输出流

pandas批量拆分与合并Excel文件的实现示例

《pandas批量拆分与合并Excel文件的实现示例》本文介绍了Pandas中基于整数位置的iloc和基于标签的loc方法进行数据索引和切片的操作,并将大Excel文件拆分合并,具有一定的参考价值,感... 目录一、Pandas 进行索引和切编程片的iloc、loc方法二、Pandas批量拆分与合并Exce

前端Visual Studio Code安装配置教程之下载、汉化、常用组件及基本操作

《前端VisualStudioCode安装配置教程之下载、汉化、常用组件及基本操作》VisualStudioCode是微软推出的一个强大的代码编辑器,功能强大,操作简单便捷,还有着良好的用户界面,... 目录一、Visual Studio Code下载二、汉化三、常用组件1、Auto Rename Tag2

MySQL 批量插入的原理和实战方法(快速提升大数据导入效率)

《MySQL批量插入的原理和实战方法(快速提升大数据导入效率)》在日常开发中,我们经常需要将大量数据批量插入到MySQL数据库中,本文将介绍批量插入的原理、实现方法,并结合Python和PyMySQ... 目录一、批量插入的优势二、mysql 表的创建示例三、python 实现批量插入1. 安装 PyMyS

Python包管理工具uv下载python版本慢问题解决办法

《Python包管理工具uv下载python版本慢问题解决办法》uv是一个非常快的Python包和项目管理器,用Rust编写,使用热缓存安装Trio的依赖项的速度对比,:本文主要介绍Python包... 目录发现问题对于 MACOS / linux 用户 (zsh/bash):对于 Windows 用户:总

Python实现Word文档自动化的操作大全(批量生成、模板填充与内容修改)

《Python实现Word文档自动化的操作大全(批量生成、模板填充与内容修改)》在职场中,Word文档是公认的好伙伴,但你有没有被它折磨过?批量生成合同、制作报告以及发放证书/通知等等,这些重复、低效... 目录重复性文档制作,手动填充模板,效率低下还易错1.python-docx入门:Word文档的“瑞士

Ubuntu向多台主机批量传输文件的流程步骤

《Ubuntu向多台主机批量传输文件的流程步骤》:本文主要介绍在Ubuntu中批量传输文件到多台主机的方法,需确保主机互通、用户名密码统一及端口开放,通过安装sshpass工具,准备包含目标主机信... 目录Ubuntu 向多台主机批量传输文件1.安装 sshpass2.准备主机列表文件3.创建一个批处理脚

MySQL批量替换数据库字符集的实用方法(附详细代码)

《MySQL批量替换数据库字符集的实用方法(附详细代码)》当需要修改数据库编码和字符集时,通常需要对其下属的所有表及表中所有字段进行修改,下面:本文主要介绍MySQL批量替换数据库字符集的实用方法... 目录前言为什么要批量修改字符集?整体脚本脚本逻辑解析1. 设置目标参数2. 生成修改表默认字符集的语句3

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

Python实现Excel批量样式修改器(附完整代码)

《Python实现Excel批量样式修改器(附完整代码)》这篇文章主要为大家详细介绍了如何使用Python实现一个Excel批量样式修改器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录前言功能特性核心功能界面特性系统要求安装说明使用指南基本操作流程高级功能技术实现核心技术栈关键函