gpt4 book ai didi

html - 尝试使用带有自定义伪类 CSS 选择器的 Nokogiri 提取属性值

转载 作者:数据小太阳 更新时间:2023-10-29 07:30:33 25 4
gpt4 key购买 nike

加载 (X)HTML 页面后,我试图获取元标记的“内容”属性的值。例如,给定:

<meta name="author" content="John Smith" />

我想提取值“John Smith”。

我知道如何使用 XPath 来做到这一点,并且了解 CSS 主要用于元素选择,但 Nokogiri 支持定义 custom CSS pseudoclasses我认为可以按如下方式使用:

class CSSext
def attr(nodeset, tag)
nodeset.first.attribute_nodes.find_all {|node| node.name == tag}
end
end

doc = Nokogiri::HTML(open(someurl))
doc.css("meta[name='name']:attr('content')", CSSext.new)

但是,这会返回与

相同的结果
doc.css("meta[name='name']")

什么给了? Nokogiri 对 CSS 和 XPath 搜索使用相同的底层引擎,因此在 XPath 中可能的任何事情在 CSS 中也应该可行。我应该如何提取属性值?

最佳答案

为什么不呢?

doc.at("meta[name='author']")['content']

据我了解,伪类只能用于过滤节点集,但不能用其他值(例如节点属性之一的值)替换节点集。

关于html - 尝试使用带有自定义伪类 CSS 选择器的 Nokogiri 提取属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14200164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com