使用Rvest进行网页抓取失效,请求排查代码问题
解决Rvest抓取GovTrack法案标题返回空白的问题
问题分析
你的代码存在两个核心问题:
- 变量
x赋值时,URL未用引号包裹,会触发R语法错误 - 最终定位到的
.results元素本身仅包含空白换行文本,实际法案标题在其内部子元素中,原路径层级冗余且未定位到正确节点
修正后的代码
# 正确赋值URL(添加引号) x <- "https://www.govtrack.us/congress/bills/browse?congress=118" # 直接定位法案标题节点,使用CSS选择器更简洁 library(rvest) page <- read_html(x) bill_titles <- page %>% html_elements(".results .bill-item h4 a") %>% html_text(trim = TRUE) print(bill_titles)
代码说明
- 使用
html_elements(".results .bill-item h4 a")直接定位每个法案的标题链接元素,避免冗余层级遍历 - 添加
trim = TRUE参数去除文本前后空白字符,得到干净的标题内容 - 若偏好XPath,可替换为:
html_elements(xpath = "//div[@class='results']//div[@class='bill-item']//h4/a")
内容的提问来源于stack exchange,提问作者sfyn
相关产品推荐
相关产品推荐

