pubmed文献批量化下载器

article/2025/9/14 23:07:39

1.代码如下

import time
import requests
import pandas as pd
import osdef getArticle(PMCID,NIHMSID,DOI,title,path):print(PMCID,NIHMSID,DOI,title,path)os.chdir(path)headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36"}if (PMCID!="NA" and NIHMSID != "NA"):print("PMCID & NIHMSID")NIHMSID = str(NIHMSID).replace("NIHMS", "nihms")urls=f'https://www.ncbi.nlm.nih.gov/pmc/articles/{PMCID}/pdf/{NIHMSID}.pdf'r = requests.get(urls, headers=headers)with open(title + ".pdf", 'wb') as f:f.write(r.content)if (PMCID!="NA" and NIHMSID =="NA"):print("PMCID")DOI_after=DOI.split("/")urls = f'https://www.ncbi.nlm.nih.gov/pmc/articles/{PMCID}/pdf'r = requests.get(urls, headers=headers)with open(title + ".pdf", 'wb') as f:f.write(r.content)if (PMCID=="NA" and NIHMSID=="NA"):print("!PMCID & !NIHMSID")urls = f'https://sci.bban.top/pdf/{DOI}.pdf#view=FitH'print(DOI)headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36"}r = requests.get(urls, headers=headers)with open(title+".pdf",'wb')as f:f.write(r.content)def getID(path,file):os.chdir(path)Article_info=pd.read_csv(file,header=0)Article_info=Article_info.fillna("NA")print(Article_info)for i in range(0,Article_info.shape[0]):#for i in range(4, 5):print(Article_info.loc[i])title=Article_info.loc[i,"Title"]title=str(title).replace(":","-").replace("\\","-")PMCID=Article_info.loc[i,"PMCID"]NIHMSID=Article_info.loc[i,"NIHMS ID"]DOI=Article_info.loc[i,"DOI"]print(PMCID,NIHMSID,DOI,title,path)try:getArticle(PMCID,NIHMSID,DOI,title,path)except:passtime.sleep(2)
def getPaperTable(path):allfile=os.listdir(path)string="title"+"\t"+"downloadResult"+"\n"os.chdir(path)for paper in allfile:if ".pdf" in paper:with open(paper,"rb") as fp:context=fp.read()if "404 Not Found" in str(context):string=string+paper+"\t"+"false"+"\n"else:string=string+paper+"\t"+"true"+"\n"with open("downloadResult.tsv",'w')as res:res.write(string)print("请输入存放文献信息表格的路径:")
path=input()
print("请输入存放文献信息表格的名字:")
file=input()
getID(path,file)
getPaperTable(path)

2.使用

2.1 getArticle(PMCID,NIHMSID,DOI,title,path):

通过文章的PMCID或DOI从pubmed数据库或者SCI-hub数据库获取文章

2.2 getID(path,file):

从pubmed获得的下载文献信息的表格读取要下载的文章。

表格可以从pubmed一键导出(如下图):

2.3 getPaperTable(path):

获取文献下载情况的信息,由于文章信息的不完整,有个别文章会缺少DOI和PMCID,导致下载失败。

3.可执行文件

可通过pyinstaller自行打包。

也可通过回复文献批量下载器获取:

下面是淘宝链接:

https://item.taobao.com/item.htm?ft=t&id=675883011497

 


http://chatgpt.dhexx.cn/article/ABRdQoNe.shtml

相关文章

PubMed插件:分区、影响因子和即时IF一目了然,还能秒下文献(亲测有效)

Pubmed作为生物医药研究者最常用的免费文摘数据库,素有检索江湖上的泰山北斗之称,用好Pubmed,其他一切pubmed镜像网站都是浮云。今天小编给大家介绍一款完全免费的无需登录的pubmed插件,他可以解决pubmed本身不显示杂志影响因子的…

干货分享|被PubMed收录的论文,在MEDLINE和SCIE能检索到吗?

PubMed PubMed是由美国国家医学图书馆(National Library of Medicine,NLM)的国家生物技术信息中心(National Center for Biotechnology Information,NCBI)开发研制的一个医学文献网络数据库。PubMed是当今…

MEDLINE与PubMed有什么区别?检索范围包含哪些?

PubMed PubMed是由美国国家医学图书馆(National Library of Medicine,NLM)的国家生物技术信息中心(National Center for Biotechnology Information,NCBI)开发研制的一个医学文献网络数据库。 PubMed是当今…

怎么找生物信息论文的数据,PubMed太有用了!

小白的创作灵感日志: 由于要跑通一篇Paper A的代码,我需要找到它用到的所有数据集,今天我要找的是 Nagano 细胞周期数据集,刚开始脑子一团浆糊,直接在谷歌上搜“Nagano”,出来的全都是日本的一个名叫Nagano…

PubMed文献影响因子怎么显示保姆教程

NCBI文献影响因子显示: 安装的第一个插件:Tampermonkey插件网址:Greasy Fork - 安全、实用的用户脚本大全 1.选择合适的浏览器进行安装 2.点击安装 安装的第二个插件:scholarscope 1.网址:Scholarscope | 更好的科研…

文献管理器PubMedPro使用

PubMedPro介绍 Pubmed.pro文献检索文献管理网站: 您可以将自己电脑中的文献PDF批量上传至本网站,所有文件会自动同步至云端,您可以子啊任意一台电脑、平板、手机,通过自己的账号在线访问文献PDF。也可以分享自己的文献给身边的同…

科研小助手PubMed的插件PubMedy

Scholarscope首页地址: https://www.scholarscope.cn/(此链接就可以帮你安装,里面“查看安装教程”下面有个“立即前往安装教程页面”按钮,点击即可。) 此插件的安装也很简单,在Chrome浏览器的安装跟其他插件的安装没有区别。 而…

PubMed插件神器之PubMedy和Scholarscope(末尾附赠Google截屏神器)

生信读研第一件事绝对是读大量文献,那么如何在PubMed大量的文献中筛选出自己想要并且高质量的呢?当然第一反应肯定是检索式,但这得自己清楚的知道课题的关键词才能准确筛选。 刚进实验室,大师兄就扔给我两篇文献让我去了解。但是!…

jdk完全卸载方法

Win7系统下安装jdk报错;错误信息:“ Windows Installer 程序包有问题。此安装需要的DLL不能运行。请与您的支持人员或程序包开发商联系”。 造成该问题的原因是系统以前安装过jdk,重新安装需要彻底卸载旧的jdk,这样重新安装才能成…

JDK卸载与安装

JDK卸载 **第一步:**通过环境变量找到 JDK安装路径。 **第二步:**删除JDK安装包。 **第三步:**删除JAVA_HOME及path下关于java的目录 **第四步:**打开cmd 命令输入java -version检验是否删除成功。 安装JDK 1、百度搜索JDK8&#xff…

卸载和安装JDK

JDK全称Java Developent Kit,Java跨平台是使用了虚拟机(jvm)在任何地方都可以运行。JDK包含了JRE和JVM。 卸载JDK 1、删除java的安装目录: 右击我的电脑-属性,做已下的操作&…

MacOS安装与卸载JDK

文章目录 1. 下载JDK8安装文件2. 安装JDK文件2.1 双击pkg文件安装即可2.2 查看JDK安装位置2.3 确定jdk安装完整 3. 配置JDK环境变量3.1 打开终端窗口,打开基础配置文件3.2 配置java环境变量3.3 激活配置3.4 输入javac和javap看是否安装成功 4. 卸载JDK(任何版本都行…

Linux上快速安装、卸载JDK

Linux上快速安装、卸载JDK Linux上安装JDK步骤1. 安装JDK2. 如何卸载JDK Linux上安装JDK步骤 1. 安装JDK 准备工作:确保机器在安装之前,系统没有默认安装JDK,可通过以下命令进行检查 java -version注意:如果是自己在虚拟机上安…

JDK卸载安装

一、卸载JDK 删除jdk的安装目录 删除注册表: 按Windows键R 输入"regedit"打开注册表编辑器 找到HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft 将JavaSoft文件夹及其子目录全部删除。 删除JAVA_HOME 删除CLASSPATH(如果有的话) 删除Path里面的 %JAVA_HOME%\bin; 和 %JAV…

JDK卸载干净

找到JDK的安装路径。 进入该路径并删除JDK安装目录。 删除“JAVA_HOME”和“CLASSPATH”系统变量。 编辑系统变量Path >> 删除有关java的内容。 进入控制面板 >> 卸载程序 >> 卸载Java相关程序。 验证是否删除成功 在cmd命令行中输入命令:java --…

如何彻底删除卸载JDK?

最近更新了jdk版本,当运行的时候出现错误 could not open D:\jdk1.8.0_171\jre1.8.0_171\lib\amd64\jvm.cfg 主要是因为上个版本没有卸载干净和,jdk与jre安装的位置发生了冲突! 解决jdk彻底删除的问题: 1.在电脑的控制面板中卸…

Windows卸载JDK和安装JDK

一、卸载JDK 卸载文件JAVA_HOME和环境变量中的系统变量JAVA_HOME。 在我的电脑处右键——属性——高级系统设置——环境变量——单击JAVA_HOME——查看变量值(就是该文件的位置)——根据位置找到文件——永久删除该文件——并返回删除环境变量中的系统变…

linux系统中jdk的卸载及安装

一.卸载 1.1卸载jdk (1)首先删除jdk的所在目录(放的那个目录就删那个目录我这块是放在一个自己建的Java文件夹下) rm -rf java (2)删除jdk的环境变量(进到环境配置里面,把配置的环境变量删了就可以了) vim /etc/prof…

Linux下卸载与安装jdk

一、检查是否已安装jdk java -version 1、如果已安装,需要先检查一下是否是 CentOS自带JDK,是的话请根据 二 进行卸载 2、如果是以前已经安装好了,那么先检查一下位置,根据 三 进行卸载 3、如果都不是前两种情况那么就可以直接…

彻底卸载JDK

1.第一步,首先卸载或删除JDK: 三种方式: (1)用控制面板卸载 (2)安全类软件(360等)自带的软件卸载工具的功能卸载 (3)直接删除jDK文件夹(我的默认的是:C:\Program Files (x86)\Java)(我喜欢的方式,简单粗暴,推荐) 2.第二步,删除注册表: 按Windows键R 输入"regedit&q…