R 如何下载物种页面的维基百科图像

R 如何下载物种页面的维基百科图像,r,wikipedia-api,R,Wikipedia Api,我通常希望生物图像能够补充数据集,如果我能拿出一张物种图像,比如说宽吻海豚的物种图像,考虑到其属和物种,那就太好了。然后,我会在K12教育应用程序中使用此图像,类似于供学生探索数据集的应用程序。我找到了一种通过WikipediR包获取URL和一些页面信息的方法,但我不知道如何在侧边栏中提取图像的URL require(WikipediR) page_info("en","wikipedia",page="Tursiops truncatus") 我知道有一种方法(即),但我真的不明白如何在R中

我通常希望生物图像能够补充数据集,如果我能拿出一张物种图像,比如说宽吻海豚的物种图像,考虑到其属和物种,那就太好了。然后,我会在K12教育应用程序中使用此图像,类似于供学生探索数据集的应用程序。我找到了一种通过
WikipediR
包获取URL和一些页面信息的方法,但我不知道如何在侧边栏中提取图像的URL

require(WikipediR)
page_info("en","wikipedia",page="Tursiops truncatus")

我知道有一种方法(即),但我真的不明白如何在R中实现这一点。

多亏了Stedy的建议,我找到了一个解决方案。注意,R有两个类似的Wikipedia接口包。这一个使用WikipediR,而不是WikipediaR

require(WikipediR); require(rvest)

#titles= vector of page name(s)
#res= desired width in pixels (220 px thumbnail by default)
#savedest= save destination (w terminal '/'); wd by default

getwikipic<-function(titles,res,savedest){
    if(missing(res)){res=220}
    if(missing(savedest)){savedest=NA}
  lapply(titles, function (ttl,...){
  d<-page_info("en","wikipedia",page=ttl,clean_response=T)
  url<-d[[1]]$fullurl
  wikipage<-html_session(url)
  imginfo<-wikipage %>% html_nodes("tr:nth-child(2) img")
  img.url<- imginfo[1] %>% html_attr("src")
  img.url<-paste0("https:",img.url)
  if(is.na(savedest)){
    savefilename<-paste0(ttl,".jpg")
    }else{savefilename<-paste0(savedest,ttl,".jpg")}

  if(res!=220){img.url<-gsub(220,res,img.url)}  

  download.file(img.url,savefilename)
  return(paste0("orig.file: ",basename(img.url)))#tell user original filename (or error)

  },res,savedest)#End lapply
}#End function
require(WikipediR);要求(rvest)
#标题=页面名称的向量
#res=所需的像素宽度(默认为220像素的缩略图)
#savedest=保存目的地(带终端“/”);默认情况下为wd

GetWikipic我认为您不需要使用WikipediaR包,甚至不需要使用Wikimedia API。我只是建议使用rvest,类似于这里的问题:谢谢,非常感谢你为我指明了这个方向!这让我找到了我想要的东西!干杯既然你的代码没有那么长,除了提供Github链接外,你能在这里发布(即剪切和粘贴)它吗?所以强烈鼓励尽可能独立地回答问题……没问题。代码添加!
devtools::source_url("https://raw.githubusercontent.com/drwilkins/getwikipic/master/getwikipic.R")

titles<-c("numbat")
getwikipic(titles,1024)