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

如何从URL列表爬取并下载PDF,按分类变量自定义命名?

解决方案:按年份+姓名前缀批量命名下载PDF

直接修改文件名生成逻辑,从你的数据库中提取Year和Name字段构建符合要求的文件名,适配1000+条数据的批量下载需求:

修改后的完整代码

# 从数据库生成目标文件名:年份_姓名前两个字母.pdf
save_here <- paste0(database$Year, "_", substr(database$Name, 1, 2), ".pdf")

# 可选:检查重复文件名,避免文件被意外覆盖
if (any(duplicated(save_here))) {
  duplicate_files <- unique(save_here[duplicated(save_here)])
  message("警告:发现重复文件名,可能导致文件覆盖:", paste(duplicate_files, collapse = " "))
}

# 批量下载PDF(mode = "wb" 确保二进制文件下载完整)
mapply(download.file, database$URL, save_here, mode = "wb")

关键说明

  • substr(database$Name, 1, 2):提取姓名字段的前两个字符,和你示例中的Jo(John)、Pa(Paul)格式完全匹配
  • paste0():无间隔拼接年份、下划线、姓名前缀和.pdf后缀,生成目标文件名
  • 直接使用database$URL和生成的save_here一一对应,无需手动指定下载数量,适配全量1000+条数据
  • 添加mode = "wb"参数:PDF是二进制文件,必须指定该模式才能保证下载的文件不损坏

原有代码的问题

你之前的代码中save_here是手动生成的序号命名(document_1.pdf),没有关联数据库中的Year和Name字段,因此无法根据变量动态修改文件名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 20:47:03