我用Python开发了个SCI-HUB本地版

栏目: Python · 发布时间: 5年前

内容简介:听说有思路:(编程思路和逻辑最重要)下面我们用

听说有 sci-hub 桌面版,带着好奇我找了一下,还真是有的,看到他的填写输入 DOI 号之后即可获取文献。一番挣扎之后,有点意思, 生信也学习 一段时间了,我是不是我也可以试试搞一个这样的软件呀,总结一下人家的软件可以做什么:

  1. 一个界面,输入DOI号的窗口
  2. 一个按钮,点击确定
  3. 多个学术按钮,但是都是指向了一个网站,之后再有链接
  4. 还有一个非常重要的功能 打赏 按钮,( ̄▽ ̄)/,有付出有赞赏嘛,用到人家软件的小伙伴还是多多给人家打赏哈。

思路:(编程思路和逻辑最重要)

1,2步骤完成核心功能,就是`sci-hub`网址+`DOI号`获得文献

下面我们用 Python 试试如何实现(虽然我上本科学过 C++ 但是我已经几乎忘完了,不过 关于编程学习的一些思考 是一样的)

Python打开默认浏览器

#用 Python 打开默认的浏览器
import webbrowser
hub = "http://sci-hub.fun/"
webbrowser.open(hub)

网址用默认浏览器打开成功了

我用Python开发了个SCI-HUB本地版

观察 sci-hub 网址的规律,以一篇2019cell为例子

我用Python开发了个SCI-HUB本地版

#测试一下代码
doi = "10.1016/j.cell.2018.11.046"
# 注意上一步的hub必须要末尾的 `/`
paper = hub + doi #字符串的拼接
webbrowser.open(paper)

运行成功了,此处不再贴图了

批量下载

我们检索文献一般不只是一篇,这时候呢我们就可以用循环来实现。

import webbrowser
hub = "http://sci-hub.fun/"
print("Please enter DOI")
while(True):
	doi = input()
	paper = hub+doi
	webbrowser.open(paper)

封装为可执行程序

上面的代码完成了核心功能,那如果没有安装Python的环境如何使用呢?

这里就用到了 PyInstaller (http://www.pyinstaller.org/),把Python程序 py 文件可以封装为 exe 可执行文件。

说实话不好安装,依赖问题总是报错,但是可以先下载,再手动安装,缺啥包安装什么包,需要一点耐心。

安装完后,我们就可以把 py 文件封装为exe了,在windows下打开 控制台 ,输入命令,查看帮助文档。

pyinstaller -h

#可以生产exe,也可以生产mac下的可执行文件。

我用Python开发了个SCI-HUB本地版

将之前写好的这个程序的“核心代码”另存为 scihub.py ,在控制台执行 pyinstaller scihub2.py

生成文件如下

我用Python开发了个SCI-HUB本地版

完成后如下图,生成的一系列文件文件

我用Python开发了个SCI-HUB本地版

dist -> hubsci2 -> hubsci2.exe 即可

我用Python开发了个SCI-HUB本地版

现在这个程序不能使用复制粘贴 Ctrl+V , 添加一句完善代码,如下

我用Python开发了个SCI-HUB本地版

再用 pyinstaller 生成 exe 即可

我用Python开发了个SCI-HUB本地版

这还只是简单的功能实现,还并没有完善,比如 sci-hub 网址更新问题,添加循环或者 try 语句,核心的功能就是这样了,另一个值得思考的问题,就Python文件才几行命令,但是生成出来的整体exe却18M这样,可能效率有点低。学习的路上和大家多多交流。


以上所述就是小编给大家介绍的《我用Python开发了个SCI-HUB本地版》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Python编程

Python编程

[美]埃里克·马瑟斯 / 袁国忠 / 人民邮电出版社 / 2016-7-1 / CNY 89.00

本书是一本针对所有层次的Python 读者而作的Python 入门书。全书分两部分:第一部分介绍用Python 编程所必须了解的基本概念,包括matplotlib、NumPy 和Pygal 等强大的Python 库和工具介绍,以及列表、字典、if 语句、类、文件与异常、代码测试等内容;第二部分将理论付诸实践,讲解如何开发三个项目,包括简单的Python 2D 游戏开发如何利用数据生成交互式的信息图......一起来看看 《Python编程》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码