当前位置:首页>python>如何用python下载ScienceDirect的原版书籍

如何用python下载ScienceDirect的原版书籍

  • 2026-08-27 11:03:24
如何用python下载ScienceDirect的原版书籍
最近在查阅文献的时候,无意间搜到了一本书的某个章节,里面的插图很漂亮,就想把整本书白嫖下来。
因为对爬虫感兴趣,我曾系统学习过python,水平不敢说很高,但有一定的爬虫基础。不过好久不玩了,有些生疏,需要回忆一下,哈哈。
先看看这本书要买正版的话,价格如何?
价格不能说很贵,但想让我掏钱的话是不可能的。那么如何免费下载整本书呢?我的思路是这样的:ScienceDirect(以下简称SD)把每本书籍按章节分为不同的pdf文件,而每个pdf文件都有一个doi(文献标识符),根据doi从sci-hub下载原文。
看了一下,这本书一共有76章,这要一个个下不得累死,于是决定试试用python批量下载。
用python试着提取每一个章节的title和doi,但SD的反爬太难搞了,没成功。只好另辟蹊径,寻找其他办法。
这里就需要借助一个网站,Crossref。

Crossref

Crossref 是一家非营利性开放数字基础设施组织,服务于全球学术研究社区。它是全球最大的International DOI Foundation数字对象唯一标识符(DOI)注册机构,负责持久记录并连接学术成果的开放元数据。通过其系统,学术出版物、数据集、基金项目等研究对象得以相互链接、引用与追踪。

根据这本书的ISBN(SD网站上有)可以查阅到这本书的章节信息,类似下面的信息。
不要被密密麻麻的数据吓到,这不过是json结构化数据,用python可以轻易提取到每个章节的title和doi,见下图:
有了每个章节的doi,我们就可以构造下载地址了。
sci-hub的pdf文章的下载地址其实是有规律的,下载地址隐含着doi信息,所以根据doi可以生成下载地址。
好了,现在我们已经批量拿到了每个章节的序号、title和doi,剩下的就交给python好了。
很快,全部70多个章节就下载完了,然后用acrobat合并章节就可以了。
最后的成果展示:
不知道大家有什么更好的办法,欢迎交流讨论。

最新文章

随机文章