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

如何用R获取CIF项目页面的所有项目链接?

修正R代码获取CIF项目详情链接

问题根源

你当前的代码错误是因为没有正确提取.list-title下的<a>标签的href属性,并且拼接基础URL时缺少必要斜杠,导致路径错误拼接成projectslist-title这类无效格式。

修正方案

假设你使用rvest包进行网页抓取,正确的实现逻辑是先定位到项目标题对应的链接标签,提取相对路径后再与基础URL安全拼接:

library(rvest)
library(urltools) # 用于自动处理URL拼接的斜杠问题

# 基础URL(确保末尾带斜杠,或用url_join自动处理)
base_url <- "https://www.cif.org/projects/"

# 抓取项目列表页面
project_page <- read_html(base_url)

# 提取所有单个项目的完整链接
project_links <- project_page %>%
  html_elements(".list-title a") %>% # 定位到.list-title节点下的<a>标签
  html_attr("href") %>% # 提取链接的相对路径
  url_join(base_url) # 安全拼接基础URL和相对路径

# 验证结果
head(project_links)

关键细节

  • 选择器修正:必须定位到.list-title下的<a>标签,而非仅.list-title节点,才能获取到项目的实际路径。
  • URL拼接优化:urltools包的url_join函数会自动处理基础URL与相对路径的斜杠匹配,避免手动拼接的错误。如果不想额外安装包,也可以手动确保基础URL末尾带斜杠后,用paste0(base_url, href)完成拼接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 17:54:59