批量下载文献endnote+python代码

您所在的位置:网站首页 endnote怎么导出文献全文 批量下载文献endnote+python代码

批量下载文献endnote+python代码

2024-07-11 12:01| 来源: 网络整理| 查看: 265

1,先试用endnote,可以下载大部分文献。

从web of science 导出*.ciw文件,双击就可以导入到endnote,点击下载全文,就可以下载大部分大文献。

2,从 endnote导出DOI文件。

设置输出样式,Tools->output styles->new styles,bibliography->templates, generic->insert field,选择DOI,保存doi.txt

3,python运行代码

修改DOI文件地址,运行代码。

#!/usr/bin/python3 # -*- coding: utf-8 -*- """ @File: version_1.1_doi_to_get_pdf.py @Time: 2021/4/20 10:10 下午 @Author: [email protected] @desc: 通过doi号下载文献pdf """ import requests from bs4 import BeautifulSoup import re import os import urllib.request path = "C:\\Users\\dzf\\Desktop\\DZF\\" if os.path.exists(path) == False: os.mkdir(path) if os.path.exists("error.txt") == True: os.remove("error.txt") file_doi = open("C:\\Users\\dzf\\Desktop\\DZF\\doi.txt", "r", encoding="utf-8") # 存放DOI码的.txt文件中,每行存放一篇参考文献 # (endnote导出APA6th,自行调整第一作者之后以et al代替),完毕须换行(最后一个也须换行!) # headers 保持与服务器的会话连接 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36', } err_num = 0 ''' 根据doi,找到文献的pdf,然后下载到本地 ''' def getPaperPdf(url): pattern = '/.*?\.pdf' content = requests.get(url, headers=headers) download_url = re.findall(pattern, content.text) # print(download_url) download_url[1] = "https:" + download_url[1] print(download_url[1]) path = r"papers" if os.path.exists(path): pass else: os.makedirs(path) # 使用 urllib.request 来包装请求 req = urllib.request.Request(download_url[1], headers=headers) # 使用 urllib.request 模块中的 urlopen方法获取页面 u = urllib.request.urlopen(req, timeout=5) file_name = download_url[1].split('/')[-2] + '%' + download_url[1].split('/')[-1] f = open(path + '/' + file_name, 'wb') block_sz = 8192 while True: buffer = u.read(block_sz) if not buffer: break f.write(buffer) f.close() print("Sucessful to download" + " " + file_name) if __name__ == '__main__': for line in file_doi: doi = line.strip() sci_Hub_Url = "https://sci-hub.ren/" # doi = input("请输入需要下载的文献的doi号:") paper_url = sci_Hub_Url + doi print(paper_url) try: getPaperPdf(paper_url) # 通过文献的url下载pdf except Exception: print("Failed to get pdf") file_doi.close()



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3