基于DOI码的批量文献下载脚本

使用Python 3,结合requests和bs4库,通过读取包含DOI码的txt文件,实现批量下载学术文献。脚本针对HTTP403错误添加headers,并在成功下载后清空download_url变量。注意,由于sci-hub库不再更新,可能会导致部分请求失败,需定期维护代码以适应网站变化。
摘要由CSDN通过智能技术生成

说明

  • 使用Python 3 在requests和bs4库的环境中运行。

  • 请将文章的DOI码的.txt以utf-8形式存储(不是带BOM的utf-8,可以保存或另存为txt文件时,查看编码格式)查看文件在该.py文件同目录下,每行存放一个文献的DOI码,完毕须换行(最后一个也须换行!)

  • 20210607更新: 添加headers,防止HTTP403报错

  • 20210801更新:清空成功下载后的download_url变量,防止前面变量赋值传递。

  • 20211111更新:部分网址源代码的下载资源更改,增加download_url获取途径。

  • 请勿从事任何违法活动!

注:
由于sci-hub库于2021年始就再未更新,所以请求近期文章时会访问失败。
当服务器数据库无请求的文献资源时,会使download_url = soup.iframe.attrs[“src”]赋值失败,产生错误。AttributeError: ‘NoneType’ object has no attribute ‘attrs’
因为该网站会一段时间更改网页代码格式,所以此代码需要定期维护。

# -*- coding: utf-8 -*- 
# @Author: Cheung Y.H.
# @Date  : 2021/11/11
# version: Python 3.9.2
'''
作者敬告:本代码仅用于学术交流,作者不负版权责任。请勿从事任何违法活动!请访问出版社下载阅读正版文章!
Author Warning: This code is only used for academic communication. 
                The author has no liability for copyright. 
                DO NOT ENGAGE IN ANY ILLEGAL ACTIVITIES.
                Please download and read the genuine articles from the publisher.
'''

import requests
from bs4 import BeautifulSoup
import os

path = ".\\downloadArticles\\"
if os.path.exists(path) &#
评论 48
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值