R-如何为物种页面下载Wikipedia图像



我通常希望有机体的图像补充数据集,如果我可以拔出物种图像,例如瓶颈海豚,鉴于该属,那将是很棒的。然后,我将在类似于该图像的K12教育闪亮应用中使用此图像,以供学生探索数据集。我找到了一种使用WikipediR软件包获取URL和一些页面信息的方法,但是我不知道如何在侧边栏中提取图像的URL。

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

我知道有一种方法(即在这里),但是我真的不明白如何在r。

中完成这项工作

感谢Stedy的建议,我找到了一个解决方案。请注意,有2个类似命名的Wikipedia接口软件包。

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

或者,我在此处使用代码创建了一个GitHub回购。您可以简单地在r。

中源来源
devtools::source_url("https://raw.githubusercontent.com/drwilkins/getwikipic/master/getwikipic.R")
titles<-c("numbat")
getwikipic(titles,1024)

将其下载到您的工作目录 图片

最新更新