如何用R与rvest爬取Etherscan.io中iframe内的地址?
解决方案
目标表格通过iframe嵌入主页面,直接请求主页面无法获取iframe内部的DOM元素,需先提取iframe的完整URL,再请求该URL获取目标内容。
步骤说明
- 从主页面提取表格所在iframe的
src属性值 - 拼接完整的iframe访问URL(原
src为相对路径) - 请求iframe页面,解析后提取复制地址按钮的内容
完整R代码
library(rvest) library(dplyr) # 1. 抓取主页面,提取目标iframe的相对路径 main_page <- read_html("https://etherscan.io/token/0xdac17f958d2ee523a2206206994597c13d831ec7#balances") iframe_src <- main_page %>% html_nodes("iframe#tokentxnsiframe") %>% html_attr("src") # 拼接完整的iframe访问URL full_iframe_url <- paste0("https://etherscan.io", iframe_src) # 2. 抓取iframe页面,提取复制地址按钮的内容 iframe_page <- read_html(full_iframe_url) target_addresses <- iframe_page %>% html_nodes(".js-clipboard") %>% html_attr("data-clipboard-text") # 输出结果 print(target_addresses)
补充说明
- 主页面中目标表格对应的iframe ID为
tokentxnsiframe,可通过该ID精准定位 - 若需爬取多页数据,可修改iframe URL中的
p参数(例如p=2对应第二页)
内容的提问来源于stack exchange,提问作者Nick Amato
相关产品推荐
相关产品推荐

