在R语言中从字符串提取图片源的技术求助
嘿,我之前处理加密货币网站的数据时也碰到过一模一样的场景!用rvest从这种xml_nodeset里提取图片src其实没那么复杂,给你两个直接能用的方案:
方案1:直接定位img节点提取属性
如果还没筛选到img节点,先一步到位选中所有目标img标签,再用html_attr()提取src属性就行——rvest会自动遍历整个nodeset,返回一个干净的字符向量:
library(rvest) # 先获取页面内容(替换成你的目标页面) page <- read_html("目标页面URL") # 直接选中td里的img标签 img_nodes <- page %>% html_nodes("td.no-wrap.currency-name img") # 提取所有img的src属性 img_sources <- img_nodes %>% html_attr("src") # 看看前几个结果 head(img_sources)
方案2:从已有的td节点集里提取
如果你已经拿到了示例里的td nodeset,那就从每个td里嵌套找到img节点,再提取属性就行——注意这里要用html_node()(单数),因为每个td里只有一个img,这样不会返回嵌套列表,直接得到向量:
# 假设你已经有了td_nodes这个xml_nodeset td_nodes <- page %>% html_nodes("td.no-wrap.currency-name") # 从每个td里找到img,再提取src img_sources <- td_nodes %>% html_node("img") %>% html_attr("src")
小提示
如果有些td里没有img,html_node()会返回NA,你可以用na.omit(img_sources)过滤掉空值,或者用html_attr("src", default = "")给缺失值设置默认空字符串,方便后续处理。
内容的提问来源于stack exchange,提问作者niko
相关产品推荐
相关产品推荐

