Pubmed文献下载跟NCBI杠上了
Pubmed文献下载跟NCBI杠上了
本文核心词:自动化,爬虫,selenium,文献下载,pubmed
Pubmed,对于一个医学生来说应该都不陌生。它是一个生物医学相关的文献检索神器,医学相关的文献基本都能搜到。但是,但我们需要下载其中的文献时,或多或少都会有些问题。
其一、pubmed中的文献大多数并不能免费获取,搜索结果中只有少部分文献提供免费下载网址。其二、当需求是下载某主题相关的大量文献时,手动下载及其麻烦。

BRCA搜索结果
针对上述问题,采用以下思路:解决方法一、sci-hub。这是一个旨在打破知识壁垒项目,可以在其网址输入检索文献链接、pmid、doi获取免费文献,对我这种穷酸学生非常实用。解决方法二、selenium模拟点击下载文献。对,又是它!!!我觉得selenium实在是太强大了,尤其是对我这种懒人来说。
下面是思路:
通过
如上所述,构建
下一步则是用selenium操作浏览器,模拟点击。这里我采用了chrome浏览器,因为下载文献会有下载弹框,而配置firefox时总是出问题,chrome就简单的多。

使用selenium时,还是采用经典的元素等待,而不用time.sleep()。selenium点击3个按钮就将文献下载好了

经典的元素等待

下载结果
部分结果如图所示,标记的文献因为网络原因下载不完整。需自己到浏览器手动点击重试。

pmid与名字对应关系
同时生成name.txt文件,显示pmid号与下载的pdf文献名字的对应关系,其中显示download error的文献为下载失败,其原因有:scihub未找到该免费文献;scihub找到的免费文献对应的是一个网址,由于类型不一,我未作爬取。
最后,不一定是一开始就从pubmed获取pmid号,也可以用自己的获取的pmid号,doi号,付费文献链接作为download()函数的参数下载。
懒得传百度云了,要代码的私邮箱!!