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

如何用rvest爬取新闻网站文章URL?代码返回NA求修正

解决rvest爬取文章URL返回NA的问题

问题分析

你使用的.diJdnO选择器对应的元素不包含href属性,所以提取时全部返回NA。这类依赖动态样式的网站,Selector Gadget容易选中样式容器而非实际承载链接的<a>标签。

修正后的代码

直接定位承载文章链接的<a>标签(该网站中文章标题嵌套在<a>标签内,是跳转的实际载体):

library(rvest)
library(tidyverse)

link <- "https://www.theroot.com/news/criminal-justice"
webpage <- read_html(link)

# 提取文章标题对应的<a>标签的href属性
article_links <- webpage %>% 
  html_nodes("article h2 a") %>% 
  html_attr("href")

# 统一处理为完整URL(兼容相对路径情况)
full_article_links <- case_when(
  str_starts(article_links, "http") ~ article_links,
  TRUE ~ paste0("https://www.theroot.com", article_links)
)

关键说明

  • article h2 a是基于网站DOM结构的精准选择:所有文章内容包裹在<article>标签内,文章标题使用<h2>标签,而标题本身就是可点击的链接(<a>),该标签的href属性即为文章的URL。
  • 加入路径判断是为了兼容网站可能返回的相对/绝对路径两种格式,确保最终得到的是可直接访问的完整URL。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 08:24:19