在R中爬取NBER工作论文编号失败,求代码修改方案
解决R爬取NBER工作论文编号的问题
问题原因
原代码使用的CSS选择器.paper-card__paper_number已失效,当前页面的工作论文编号所在元素结构发生了变化。
修改后的代码
library(rvest) url <- "https://www.nber.org/papers?facet=topics%3AFinancial%20Economics&page=1&perPage=50&sortBy=public_date" page <- read_html(url) # 提取工作论文编号 paper_numbers <- page %>% html_nodes(".paper-card__metadata .paper-card__metadata-item") %>% html_text() %>% # 筛选NBER工作论文编号格式(以w开头+数字) grep("^w\\d+$", ., value = TRUE) %>% # 移除前缀w,保留纯数字编号 gsub("^w", "", .) print(paper_numbers)
代码说明
- 用
.paper-card__metadata .paper-card__metadata-item定位到包含编号的元数据节点,匹配当前页面的元素结构 - 通过正则筛选出符合NBER工作论文编号规则的条目,排除作者、日期等其他元数据
- 移除编号前的固定前缀
w,得到目标数字编号
内容的提问来源于stack exchange,提问作者James Rider
相关产品推荐
相关产品推荐

