#########################################################
getNCBIsession<-function(){
library(rvest)
library(xml2)
library(stringr)
url<-" http://www.baidu.com "#注意:此处的链接中不能用https,不然一律失败!
session<-html_session(url)
form<-html_form(session)[[1]]
form<-set_values(form,wd="NCBI")
Sys.sleep(10)
session<-submit_form(session,form)
session<-follow_link(session,"NCBI")
print(session_history(session))#注:此时的url是https,貌似是可以继续运行的 https://www.ncbi.nlm.nih.gov/
return(session)
}
getpubmedsession<-function(session,keyword){
session<-session
keyword<-keyword
form<-html_form(session)[[1]]
form<-set_values(form,term=keyword)
intersession<-submit_form(session,form)
pubmedsession<-follow_link(intersession,"PubMed")
print(pubmedsession)
session=pubmedsession
web<-read_html(session)
pagenum<-html_node(web,xpath = '//h3[@class="page"][1]/input')
pagenum<-html_attr(pagenum,"last")
pagenum<-as.numeric(pagenum)
print(pagenum)
return(list(session=session,pagenum=pagenum))
}
getpubmedinfo<-function(session){
session=session
info<-list(
title<-'//div[@id="maincontent"]/div//div[@class="rprt"]/div[2]/p/a[contains(@href,"pubmed")][1]',
author<-'//div[@id="maincontent"]/div//div[@class="rprt"]/div[2]//p[@class="desc"]',
journal<-'//div[@id="maincontent"]/div//div[@class="rprt"]/div[2]//p[@class="details"]/span[@class="jrnl"]',
detail<-'//div[@id="maincontent"]/div//div[@class="rprt"]/div[2]//p[@class="details"]',
pubmedid<-'//div[@id="maincontent"]/div//div[@class="rprt"]//dl'
)
node<-lapply(info,function(x){x=html_nodes(session,xpath = x)return(x)})
node<-sapply(node,html_text)
node<-data.frame(title=node[,1],journal=node[,3],author=node[,2],pumedid=node[,5],detail=node[,4])
return(node)
}
getpubmedinformation<-function(keyword){
session<-getNCBIsession()
session<-getpubmedsession(session,keyword)
table<-getpubmedinfo(session[[1]])
return(table)
}
table<-getpubmedinformation("heart")
#########################################################
#########################################################
1、安装node.js、mysql,此处略(自行搜索吧)…; 2、创建一个名为test的数据库,然后建一张名为user_info的表(仅供测试)… 这里假定mysql使用的用户名为root,密码为123456 相应的mysql如下: 复制代码 代码如下: /** *欢迎分享,转载请注明来源:内存溢出
评论列表(0条)