You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改R脚本以下载维基百科物种信息框中的高清原图

解决维基百科物种图片下载低画质问题

你的脚本当前获取的是维基百科的缩略图链接,这类链接包含/thumb/路径和尺寸参数(比如/300px-xxx.jpg),画质被压缩。要获取原始高清图,需要对提取到的URL做针对性修改:

核心修改逻辑

  1. 移除URL中的/thumb/路径段
  2. 删除尺寸参数(即最后一个/到文件名后缀前的内容,比如300px-)

修改后的完整脚本

library(rvest) # 确保已安装并加载rvest包

# 下载维基百科高清物种图片的函数
download_wikipedia_image <- function(bird_name) {
  # 构造物种维基百科页面链接
  wikipedia_url <- paste0("https://en.wikipedia.org/wiki/", gsub(" ", "_", bird_name))
  
  # 读取页面HTML内容
  page <- read_html(wikipedia_url)
  
  # 提取信息框中的第一张图片链接
  image_src <- page %>%
    html_nodes("table.infobox img") %>%
    html_attr("src") %>%
    head(1)
  
  if (!is.na(image_src)) {
    # 将缩略图链接转换为原始高清图链接
    raw_image_url <- paste0("https:", image_src)
    # 移除/thumb/路径
    raw_image_url <- gsub("/thumb/", "", raw_image_url)
    # 删除尺寸参数部分
    raw_image_url <- sub("/[^/]+(?=\\.[a-z]+$)", "", raw_image_url, perl = TRUE)
    
    # 构造带正确后缀的保存路径
    file_ext <- tools::file_ext(raw_image_url)
    save_path <- paste0("BIRDPHOTO/", gsub(" ", "_", bird_name), ".", file_ext)
    
    # 下载图片(mode="wb"确保二进制文件不损坏)
    download.file(raw_image_url, save_path, mode = "wb")
    cat("已下载高清图:", bird_name, "\n")
  } else {
    cat("未找到物种图片:", bird_name, "\n")
  }
}

# 创建图片保存目录(不存在则新建)
dir.create("BIRDPHOTO", showWarnings = FALSE)

# 示例物种列表
bird_names <- c("Prunella modularis", "Myiopsitta monachus", "Pyrrhura perlata", 
                "Tyto alba", "Panurus biarmicus", "Merops apiaster")

# 批量执行下载
for (bird_name in bird_names) {
  download_wikipedia_image(bird_name)
}

cat("所有下载任务完成。\n")

关键细节说明

  • 链接转换示例:
    • 原缩略图链接:https://upload.wikimedia.org/wikipedia/commons/thumb/8/8a/Bubo_bubo_01.jpg/300px-Bubo_bubo_01.jpg
    • 转换后原始链接:https://upload.wikimedia.org/wikipedia/commons/8/8a/Bubo_bubo_01.jpg
  • 动态后缀适配:用tools::file_ext()自动识别原始图片格式,避免强制保存为jpg导致格式错误
  • 二进制下载模式:添加mode = "wb"参数,保证图片这类二进制文件下载后不会出现损坏

内容的提问来源于stack exchange,提问作者Fruuutz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 05:33:17