R2-09 第二阶段第一次任务作业

Giant Panda 2018-01-23 10:52:48 阅读: 1149

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" #获取数据接口(fetch可返回多种数据格式)

)

#搜索文章的参数

searchArticleParam=list(

  retstart=0, #起始位置

  retmax=20, #每次取的数量

  usehistory='Y',#是否使用历史搜索

  querykey='',

  webenv='',

  term='(cell[TA]) AND 2017[DP]',#提交pubmed的词, 

  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) #清除http状态字符串

data=content(r, "parsed", "application/json") 

#data里面存储了所有数据

esearchresult=data$esearchresult

# $count=562,$retmax=20, $retstart=0,$querykey=1, $webenv=NCID_1_30290513_130.14.18.34_9001_1515165012_617859421_0MetA0_S_MegaStore_F_1

count = esearchresult$count

print(count)

111.png

第一题,第一次做按照自己的理解,写了一下,结果是552,对比其他人的做法,发觉自己的理解太奇葩了,所以奇葩的代码就不贴出来了,万一误导大众呢?

 

library("xml2")

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))

r2

stop_for_status(r2)

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}

2222.png

第二题真的没有明白,嗯,好难。

 

 
邀请讨论

附件

{{f.title}} 大小 {{f.file_size}} 下载 {{f.count_download}} 金币 {{f.count_gold}}
{{item.nick_name}} 受邀请回答 {{item.create_time}}
{{item.refer_comment.nick_name}} {{item.refer_comment.create_time}}

附件

{{f.title}} 大小 {{f.file_size}} 下载 {{f.count_download}} 金币 {{f.count_gold}}
切换到完整回复 发送回复
赞({{item.count_zan}}) 踩({{item.count_cai}}) 删除 回复 关闭
科研狗©2015-2025 科研好助手,京ICP备20005780号-1 建议意见

服务热线

178 0020 3020

微信服务号