如何使用R抓取NBER论文页面中标题附带的超链接?
用R抓取NBER论文详情页链接
完全可以用R实现这个需求,推荐用rvest包(网页抓取常用工具)来完成,具体步骤如下:
- 首先安装并加载所需包:
# 安装包(首次运行需要) install.packages(c("rvest", "httr")) # 加载包 library(rvest) library(httr)
- 定义目标页面URL并获取页面内容:
# 目标页面URL target_url <- "https://www.nber.org/papers?page=1&perPage=50&sortBy=public_date" # 发送请求获取页面(添加User-Agent模拟浏览器请求,避免被拦截) page <- GET(target_url, user_agent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36")) %>% content()
- 定位并提取论文标题对应的链接:
NBER页面中,论文标题的链接都在带有paper-title类的<a>标签里,直接提取这些标签的href属性即可:
# 提取所有论文标题的相对链接 paper_links_rel <- page %>% html_elements(".paper-title a") %>% html_attr("href") # 转为绝对链接(NBER的链接是相对路径,需要拼接基础域名) paper_links_abs <- paste0("https://www.nber.org", paper_links_rel) # 查看结果 head(paper_links_abs)
注意事项
- 不要短时间内频繁发送请求,建议每次请求后加
Sys.sleep(2)之类的延迟,避免触发网站反爬机制 - 抓取前可以查看NBER的
robots.txt,确认允许抓取的范围
内容的提问来源于stack exchange,提问作者James Rider
相关产品推荐
相关产品推荐

