在R语言中爬取卫报国际版网站头条遇问题求助
问题分析与解决方法
核心问题
你的XPath //html/body/div[3]/div 是基于网页固定DOM层级写的,这类路径极度脆弱——网站只要调整布局(比如新增广告容器、修改导航结构),这个路径就会直接失效,根本定位不到头条内容。而且你没有瞄准Guardian头条对应的专属元素标识,自然拿不到目标内容。
修正方案
Guardian的头条标题都有统一的类名(比如fc-item__title),用这个类来定位才是稳定的方式。以下是修正后的代码:
library(rvest) guardian_url <- "https://www.theguardian.com/international" guardian <- read_html(guardian_url) # 定位所有头条标题元素,提取文本 headlines <- guardian %>% html_elements(".fc-item__title") %>% html_text2() # 输出结果 print(headlines)
额外说明
- 如果只想抓取首页顶部的核心头条,可以再加一层父元素限制,比如定位
main标签下的标题:
headlines <- guardian %>% html_elements("main .fc-item__title") %>% html_text2()
- 网页结构可能会随时间更新,如果之后再次失效,建议打开浏览器开发者工具(F12),直接查看头条元素的最新类名或属性,再调整选择器。
内容的提问来源于stack exchange,提问作者dilly
相关产品推荐
相关产品推荐

