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

如何在R中抓取iframe内信息?以CPS学校页面为例

解决方法

1. 精准定位iframe元素

原页面中的iframe带有唯一ID schoolProfileIframe,用ID选择器替代通用的iframe选择器,能避免误选其他可能存在的iframe:

iframe <- page %>% html_element("#schoolProfileIframe")

2. 正确定位目标文本节点

iframe页面的Supportive School认证信息嵌套在特定DOM结构里,需要用更精准的选择器定位。以下两种方案均可:

方案一:CSS选择器

# 获取包含Established的完整文本
established_info <- iframe_page %>% 
  html_element("div.certification:has(h4:contains('Supportive School')) p:contains('Established')") %>% 
  html_text()

# 仅提取年份数字(可选)
library(stringr)
established_year <- str_extract(established_info, "\\d+")

方案二:XPath选择器(兼容性更强)

# 用XPath精准匹配目标节点
established_info <- iframe_page %>% 
  html_element(xpath = "//div[contains(@class, 'certification') and .//h4[text()='Supportive School']]//p[contains(text(), 'Established')]") %>% 
  html_text()

# 仅提取年份数字(可选)
library(stringr)
established_year <- str_extract(established_info, "\\d+")

3. 验证页面加载状态

如果仍无法获取内容,先打印iframe页面的文本,确认页面是否被正确解析:

cat(html_text(iframe_page))

若输出为空或不包含目标内容,说明网站可能存在动态加载或反爬机制,此时需改用RSelenium等工具模拟浏览器加载页面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 15:15:38