小编有话说:hello guys!昨天推送的stata做图教程您学会了吗?有任何疑问欢迎后台咨询我们热心的罗仔。今天换个口味,学学python自动化。
作为科研小达人,不学一些旁门左道傍身怎么行!
今天我们扒一扒pubmed,如何快速下载10000篇以外的文献?
今天推送一波python自动化,目标pubmed。平时在pubmed如果查找的内容对应文献在一万篇内,可以通过pubmed对题目摘要一键下载。如果大于一万篇呢,今天介绍的是如何使用python的selenium模块,进行自动下载。
先上一波视频看效果
通过自动化操作,对每一个页面文献自动下载成csv文件,后期可再通过插件方方格子或python对每一个表格进行合成。
敲重点
为了完成自动化操作,我们还需要:python、谷歌浏览器(Edge浏览器或火狐,推荐谷歌)、webdriver和selenium模块。
webdriver安装:
点击谷歌浏览器设置→关于Chrome→查看版本。
在该链接:
http://npm.taobao.org/mirrors/chromedriver/
根据谷歌浏览器版本下载对应的webdriver,将解压后的webdriver软件移动到谷歌浏览器的目标文件夹即可。
selenium安装:同时按下WIN+R,输入cmd,在命令行输入pip install selenium,回车
提示成功后可在vscode直接开敲代码:
from selenium import webdriverfrom selenium.webdriver.support.ui import Select
这是python常见的第一步操作:导入模块。python有众多模块,也是因为模块让python在各个领域都能干点事。
第一行代码是调用slenium模块下的webdriver,这是今天的主角,在后续所有自动化中也是必不可少的一句命令行;
第二行代码,是因为今日份的自动化过程中需要对选择框进行选择,所以需要导入Select。
find = input('请输入要查找的内容,回车确认:')url = 'https://pubmed.ncbi.nlm.nih.gov/?term='+find+'&size=200&page=51'
input()语句可以让python与用户互动,将用户输入的内容赋值给“find”对象,然后将赋值过的“find”与pubmed基础链接相互衔接,生成一个新的链接“url”对象。
driver = webdriver.Chrome()driver.get(url)driver.maximize_window()driver.implicitly_wait(10)
通过webdriver.Chrome()语句调用了谷歌浏览器,并get到了一个链接对象url,这时候可以看到谷歌浏览器自动打开了一个链接。再给driver对象一个微调,设置为窗口保持最大化,以及隐性等待10秒。
tip:隐性等待跟强制等待的区别,顾名思义,强制等待就是只有过了等待的时间才能进行下一个命令行。而在操作网页时,因为网速等原因,页面元素没能及时加载出来;
而python在执行上一条命令行后,准备运行下一条命令行时没找到对应的网页元素,就会报错。对于这种不可抗力因素,我们可以添加一个隐性等待,设置为10秒,意思是:如果10秒内没找到指定的元素,继续等;如果找到了,执行下一个命令行;
如果过了10秒还没找到,那就报错。所以小伙伴可以根据自己网速情况,把隐性等待调高或者调低。
for i in range(51,56):
for语句是python中常见的循环语句,就是在条件内不断循环命令行。
在这里是设置的循环条件为 i in range(51,56),意思是当 i 从51走到55时候(python的括号范围是前闭后开,故不包含56),执行下列命令行。
因为我们要自动下载51页及以后的文献信息,所以前面是从51开始;
如果要下载的页面总共就51-55页,后面的数字要写成56(55+1),也就是总共执行5次:51/52/53/54/55。
执行五次什么操作呢?以及如果是要下载51-100页该如何操作呢?
预知后事如何,请看下回分解。
创作部罗仔
好啦!有什么不懂的都可以后台问小编哦~小编看到的都会尽快回复的~下期想学什么也可以留言哦~
end
Bye bye all guys! see u next time
1.STATA教程3:作图
3.STATA教程1:metan的功能
2.谷ge学术访问
3.STATA教程2:中间变量
关注本公众号,更多资源教程免费咨询,做一个宠粉的公众号!让我们Ldq小编带您悄悄变强!
点下【在看】给小编加鸡腿