温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python中pubmed的作用是什么

发布时间:2021-07-10 14:02:06 来源:亿速云 阅读:297 作者:Leah 栏目:大数据

Python中pubmed的作用是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

导入安装包

第一步当然是导包了。自动化需要的包小伙伴还记得吗,就是selenium,具体如下:

from selenium import webdriver   
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.action_chains import ActionChains

① 代码讲解

代码1: 调用selenium包中的webdriver模块,相信小伙伴都已经安装了webdriver软件在谷歌浏览器安装目录了吧,这个模块将会启用webdriver软件进而实现谷歌浏览器自动化操作;

代码2: 调用Select模块,当页面需要对单选框、复选框、下拉框进行操作时,就要调用这个模块,因为在接下来操作我们需要在Format中选择CSV格式(如图),所以可以提前导入这个模块;

代码3: ActionChains模块是真实模拟键鼠操作,如鼠标悬停、双击、右击等操作,可以说是selenium中的万能利器。

Python中pubmed的作用是什么

PS:如有需要Python学习资料的小伙伴可以加下方的群去找免费管理员领取

Python中pubmed的作用是什么

设置参数

进入准备阶段了,对一些参数提前设置,方便第三步的正式操作

find = input('请输入要查找的内容,回车确认:')
url = 'https://pubmed.ncbi.nlm.nih.gov/?term='+find+'&size=200&page=51'
driver = webdriver.Chrome()driver.get(url)driver.maximize_window()driver.implicitly_wait(10)

①代码讲解

代码1: 是通过input函数实现人机交互,将我们需要查找的内容赋值给一个叫“find”的变量(小伙伴可以自定义变量,如果修改的话在代码2中也要记得修改成新的变量名)。

单独运行这句代码,python会出现如下界面:可以看到,input()中的内容会出现在终端,起到提示作用,小伙伴可以自定义内容;在绿色框中输入内容,会赋值给“find”这个变量。

在这里小编以“T2DM”为例,输入“T2DM”回车,这时候“find”就等于“T2DM”,然后就可以通过代码2赋值为“url”变量,这就是接下来我们要自动化页面的链接了。

Python自动化:pubmed简介

注意事项

如果有小伙伴觉得没必要人机交互,也可以直接赋值,依然以”T2DM“为例,如下:效果是一样的。

注意:在python中除了文本输入,其余符号均为英文符号。在这里的引号应为" "而不是“ ”。

find = "T2DM"
url = 'https://pubmed.ncbi.nlm.nih.gov/?term='+find+'&size=200&page=51'

② 代码讲解

代码1代码2: 我们就能获取对应的链接地址,接下来可以通过调用浏览器来访问该页面了。

代码3: 通过webdriver模块调用Chrome浏览器(相信小伙伴通过之前教程已经把webdriver软件安装在谷歌浏览器的安装目录了),然后通过代码4让谷歌浏览器访问刚才的链接地址。当运行到代码4时,可以看到python自动打开了如下界面:

Python中pubmed的作用是什么

③代码讲解

对于打开的页面,我们可以进一步优化设置。通过代码5,将窗口最大化,然后设置隐性等待为10s。(不记得显性等待和隐性等待区别的小伙伴可以参照上一篇python教程)

自动化流程

在开始前要晓得一个概念:

① python是根据我们设置好的逻辑进行自动化操作,所以我们不是直接跟python说“去把这些文献下载了”,这不是python所能理解的逻辑;而是跟python说,“你先点这里,然后点这里,选这个,然后点这里,等一下,然后再点这里”,也就是说,如果我们要让python实现自动化,就要将我们要做的事拆分给python听。

So, 先手动操作→记录每个操作→转换成代码,然后修饰一下就是python语言了。这时候打开刚才的pubmed界面,可以进行批量下载的操作是很多种的,小编只是举一个例子,但实质是一样的,小伙伴们可以举一反三。

② 手动操作。单击Save→单击Format→选择CSV→Creat file,这时候就可以整页保存了。

Python中pubmed的作用是什么

③ 转换成代码。通过3.2的步骤,我们可以跟python说“先点这个再点这个再点这个”了,但怎么转换成代码,小伙伴们记住一句代码

 ActionChains(driver).move_to_element(driver.find_element_by_xpath('xpath_content')).click().perform()

记住这句代码几乎可以在后续的自动化中横着走,这句代码有点长,拆分一下:

ActionChains(driver)
move_to_element( A )
driver.find_element_by_xpath( 'B' )
click()
perform()

代码讲解:

代码1: 调用ActionChains来操作driver,怎么操作?看代码2;

代码2: 将鼠标移动到A这个元素,A这个元素是啥?看代码3;

代码3: 通过driver来找一个“B”的xpath,找回的结果就是A。

代码4:鼠标单击;

代码5:将上述操作依次进行。


用另一个方式解读,就是寻找一个叫“B”的xpath,然后鼠标移动到这个xpath并单击,这样就模拟了真实鼠标的移动单击操作了。

贴上小编写的代码

for i in range(51,56):
    driver.implicitly_wait(10)
    ActionChains(driver).move_to_element(driver.find_element_by_xpath('//*[@id="save-results-panel-trigger"]')).click().perform()
    Select(driver.find_element_by_xpath('//*[@id="save-action-selection"]')).select_by_visible_text("All results on this page")
    ActionChains(driver).move_to_element(driver.find_element_by_xpath('//*[@id="save-action-format"]')).click().perform()
    Select(driver.find_element_by_xpath('/html/body/main/div[1]/div/form/div[2]/select')).select_by_visible_text("CSV")
    ActionChains(driver).move_to_element(driver.find_element_by_xpath('//*[@id="save-action-panel-form"]/div[3]/button[1]')).click().perform()
    target =driver.find_element_by_xpath('//*[@id="search-results"]/section/div[3]/a/span')
    driver.execute_script("arguments[0].();", target)
    ActionChains(driver).move_to_element(driver.find_element_by_xpath('//*[@id="search-results"]/section/div[3]/a/span')).click().perform()
    ActionChains(driver).move_to_element(driver.find_element_by_xpath('//*[@id="search-page"]/div[12]/div/form/button')).click().perform()
    print('第'+str(i)+'页下载成功')
    print('跳转第'+str(i+1)+'页面中')
driver.quit()print('全部下载完毕,自动退出。')

可以看到,这句代码出现了最多次,且每次出现只是修改了xpath的内容,也就是说,这句重点代码的重点内容在于怎么找这个xpath,其余的只要copy就行了。

find = input('请输入要查找的内容,回车确认:')
url = 'https://pubmed.ncbi.nlm.nih.gov/?term='+find+'&size=200&page=51'
from selenium import webdriverfrom selenium.webdriver.support.ui import Selectfrom selenium.webdriver.common.action_chains import ActionChainsdriver = webdriver.Chrome()driver.get(url)driver.maximize_window()driver.implicitly_wait(10)
for i in range(51,56):
    driver.implicitly_wait(10)
    ActionChains(driver).move_to_element(driver.find_element_by_xpath('//*[@id="save-results-panel-trigger"]')).click().perform()
    Select(driver.find_element_by_xpath('//*[@id="save-action-selection"]')).select_by_visible_text("All results on this page")
    ActionChains(driver).move_to_element(driver.find_element_by_xpath('//*[@id="save-action-format"]')).click().perform()
    Select(driver.find_element_by_xpath('/html/body/main/div[1]/div/form/div[2]/select')).select_by_visible_text("CSV")
    ActionChains(driver).move_to_element(driver.find_element_by_xpath('//*[@id="save-action-panel-form"]/div[3]/button[1]')).click().perform()
    target =driver.find_element_by_xpath('//*[@id="search-results"]/section/div[3]/a/span')
    driver.execute_script("arguments[0].();", target)
    ActionChains(driver).move_to_element(driver.find_element_by_xpath('//*[@id="search-results"]/section/div[3]/a/span')).click().perform()
    ActionChains(driver).move_to_element(driver.find_element_by_xpath('//*[@id="search-page"]/div[12]/div/form/button')).click().perform()
    print('第'+str(i)+'页下载成功')
    print('跳转第'+str(i+1)+'页面中')
driver.quit()print('全部下载完毕,自动退出。')

关于Python中pubmed的作用是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI