关键词文章采集工具(Python制作的论文搜索工具-​​)

优采云 发布时间: 2022-04-07 13:24

  关键词文章采集工具(Python制作的论文搜索工具-​​)

  文献检索对广大学生来说确实是个麻烦事

  

  ,如果你的学校没有购买足够的论文下载权,或者不在校园内,那就很头疼了。幸运的是,我们有这个用 Python 制作的论文搜索工具,它简化了我们学习的复杂性

  

  ​​2020-05-28补充​:已经使用最新的scihub提取网络,目前项目已上线,感谢@lisenjor分享。​​​

  ​​2020-06-25补充​:新增关键词批量搜索和下载论文功能。

  请在Python实战合集公众号后台回复​scihub​,或前往GitHub链接下载最新源码:

  ​​​​

  ​​​​

  ​​​​

  ​​​​​

  ​首先给大家介绍一下在线数据库Sci-hub,它提供了大约8000万篇科学学术论文和文章下载。由一位名叫 Alexandra Elbakin 的*敏*感*词*创立,她曾经在哈佛做研究,发现自己需要的数百篇论文太贵了,所以她创建了这个 网站,旨在让更多人访问知识

  

  

  ​后来,这个网站名气越来越大,逐渐在印度、印度尼西亚、中国、*敏*感*词*等更多国家流行起来,并成功与一些机构合作,共同维护和运营这个网站。到2017年,网站上的学术论文达8160万篇,占全部学术论文的69%,基本满足了大部分论文的需求,剩下的31%是研究人员不想获得的论文。​​​

  ​为什么我们需要使用 Python 工具下载​

  ​一开始,这个网站是人人都能看的,但随着它的知名度越来越高,越来越多的出版社开始关注它们。的服务器无法再访问,所以从那时起,他们与出版商打了一场游击战

  

  游击战的缺点是scihub的地址需要经常更换,所以我们不能一直准确地使用某个地址访问数据库。当然,还有其他方法可以让我们长时间访问这个网站,比如修改DNS,修改hosts文件,但是这些方法不仅麻烦,而且也不是长久之计,而且还是有失败的可能。​​​

  ​新姿势:Python写的API工具下载论文超级方便​​​​

  ​这是一个来自github的开源非官方API工具,下载地址为:​

  https://github.com/zaytoun/scihub.py

  但是由于作者很久没有更新,原来的下载工具已经没有了。Python实战合集根据@lisenjor的分享修改了源码下载工具。

  请在 Python 实战合集公众号后台回复 scihub 下载最新可用代码。

  ​解压下载的包后,使用CMD进入该文件夹,输入以下命令(默认安装Python)安装依赖:​

  pip install -r requirements.txt

  ​然后我们就可以开始使用了!

  

  这个工具使用起来非常简单。有两种方法。第一种方法是在 Google Scholar(可以搜索论文的 URL)或 IEEE 上找到您需要的论文。复制论文网址如:​

  ​​​​

  ​​​​

  ​​​​

  

  ​ieee文章​

  ​然后在scihub文件夹的scihub中新建一个名为download.py的文件,输入如下代码:​

  

  ​进入文件夹后,在cmd/terminal中运行:​

  python download.py

  ​你会发现文件已经成功下载到你的当前目录,名为paper.pdf

  

  ​如果还是不行,可以多试几次。如果还是不行,可以在下方评论区提问。​​​

  ​以上为第一种下载方式,第二种方式可以通过在CNKI或百度学术搜索论文获取DOI号进行下载,例如:​

  

  ​将 DOI 号填入下载功能:​

  

  下载完成后,文件夹中会出现文档:

  

  ​2020-06-25新增:基于关键词的论文批量下载​

  ​今天更新了一波界面,现在支持以搜索的形式批量下载论文,比如搜索关键词端午节:​​​

  

  from scihub import SciHub<br />sh = SciHub()<br /><br /><br /># 搜索词<br />keywords = "Dragon Boat Festival"<br /># 搜索该关键词相关的论文,limit为篇数<br />result = sh.search(keywords, limit=10)<br />print(result)<br /><br /><br />for index, paper in enumerate(result.get("papers", [])):<br /> # 批量下载这些论文<br /> sh.download(paper["url"], path=f"files/{keywords.replace(' ', '_')}_{index}.pdf")

  ​​​运行结果,下载成功:​​​

  

  ​请注意,在这部分,我修改了作者源代码中的很多地方。必须从Python实战合集公众号后台回复​scihub​下载源代码,或者到GitHub下载源代码才能成功运行该功能:

  ​​​

  ​​​​

  ​​​​

  ​​​工作原理​

  这个API的源代码其实很容易阅读

  

  ​​一、查找sci-hub当前可用的域名​​​

  ​首先,它会在这个下载论文的 URL 找到当前可用的 sci-hub 域名:​

  ​​​​

  ​​​​

  ​​​​

  

  ​可惜作者多年不维护,地址已过期。我们在这里修改了域名,让项目再次正常工作:​

  

  ​​二、分析用户输入的论文地址,找到对应的论文​​​​

  ​1.如果用户输入的链接不能直接下载,请使用sci-hub下载​

  2.​如果scihub URL不可用,切换到另一个URL,除非所有URL都不可用。​​​

  

  ​3.值得注意的是,如果用户输入论文的关键词,我们会调用sciencedirect的接口,获取论文的地址,然后使用scihub下载论文。​​​

  ​​三、下载​​​

  ​1. 拿到论文后,保存到data变量中​

  ​2. 然后将数据变量存储为文件​

  

  另外,代码使用了重试装饰器,可以用来重试错误。作者将重试次数设置为10次,每次重试的最大等待时间不超过1秒。​​​

  ​希望大家能正确使用这个工具,不要批量下载,否则一旦网站被屏蔽,学生党又要哭了。​​​

  ​如果您在使用过程中发现任何问题或对某些功能有疑问,请扫码进入下方Python实战合集互助群,群友将非常热心为您提供帮助:​

  ​我们的文章结束了。如果你今天想要我们的文章,请继续关注我们。如果对你有帮助,请在下方点个赞

  ​Python实战合集()

  不仅仅是一本书

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线