服务热线
178 0020 3020
> install.packages("jsonlite")
> install.packages("httr")
> library(httr)
> baseUrl="https://eutils.ncbi.nlm.nih.gov/"
> pubmedAction=list(base="entrez/eutils/index.fcgi",search="entrez/eutils/esearch.fcgi",fetch="entrez/eutils/efetch.fcgi",summary="entrez/eutils/esummary.fcgi")
> searchArticleParam=list(retstart=0,retmax=20,usehistory='Y',querykey='',webenv='',term='(cell[TA]) AND 2017[DP]',total_num=0,total_page=1, page_size=20, current_page=1)
> postSearchUrl=paste(baseUrl,pubmedAction$search,sep="")
> r <- POST(postSearchUrl, body = list(db='pubmed',term=searchArticleParam$term,retmode='json',retstart=searchArticleParam$retstart,retmax=searchArticleParam$retmax,usehistory=searchArticleParam$usehistory,rettype='uilist'))
> stop_for_status(r)
> data=content(r, "parsed", "application/json")
> esearchresult=data$esearchresult
> count = esearchresult$count
> print(count)
> searchArticleParam$total_num=esearchresult$count
> searchArticleParam$querykey=esearchresult$querykey
> searchArticleParam$webenv=esearchresult$webenv
> pubmedidStr="29275861,29275860"
> postFetchUrl=paste(baseUrl,pubmedAction$fetch,sep="")
> r2 <- POST(postFetchUrl, body = list(db='pubmed',id=pubmedidStr,retmode='xml', usehistory=searchArticleParam$usehistory,querykey=searchArticleParam$querykey,webenv=searchArticleParam$webenv))
> stop_for_status(r2)
> install.packages("xml2")
> library(xml2)
> data2=content(r2, "parsed", "application/xml")
> article=xml_children(data2)
> count=length(article)
> cnt=1
> while(cnt<=count){
+ title=xml_find_first(article[cnt],".//ArticleTitle")
+ abstract=xml_find_first(article[cnt],".//AbstractText")
+ print(xml_text(title))
+ print(xml_text(abstract))
+ cnt = cnt + 1
+ }
好多地方都还没有搞明白,基本是借鉴原码的
附件