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

rvest包html_element()如何按font size属性匹配提取HTML元素

rvest提取指定通用属性HTML元素的实现方法

测试复现用例

首先加载rvest构造测试页面:

library(rvest)
html <- minimal_html('
    <p id="name1"><font size=5>Here is size 5 font </font></p>
    <p id="name2" class="second"><font size=3>And here is size 3 font </font></p>
   ')

# 已验证可用的id、class、标签匹配写法
html %>% html_elements('#name1')
html %>% html_elements('.second') 
html %>% html_elements('font')
# 无效的错误尝试(仅id、class支持#、.简写语法,普通属性不适用)
html %>% html_elements('#5')
html %>% html_elements('.5')

解决方案

html_elements()底层原生支持标准CSS选择器语法,除了id、class的简写匹配外,任意普通属性都可以通过[属性名="属性值"]的格式匹配,不需要更换函数,旧版html_nodes()的选择器规则和新版html_elements()完全一致,之前匹配失败是选择器写法错误导致的。

提取所有size=5的<font>元素的正确代码如下:

html %>% html_elements('font[size="5"]')

运行后返回结果符合预期:

{html_nodeset (1)}
[1] <font size="5">Here is size 5 font </font>

扩展属性匹配用法

  • 若不限定标签,只要页面中带size=5属性的元素都提取,可直接写html_elements('[size="5"]')
  • 支持模糊匹配规则:匹配属性值包含指定字符用[属性名*="匹配值"],匹配属性值以指定内容开头用[属性名^="匹配值"],匹配属性值以指定内容结尾用[属性名$="匹配值"]
  • 该语法对原生HTML属性、自定义属性(比如data-*类属性)都生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 17:39:22