gpt4 book ai didi

ruby - 如何在 Nokogiri/Ruby 解析期间检查页面上是否存在元素?

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

在使用 Nokogiri(Ruby gem)解析 HTML 页面期间,我如何检查页面上是否存在元素(在本例中为 div)?

在我的测试页面上,它确实存在,因此 pp 会产生预期的 Nokogiri 输出。但是 if 语句不起作用, == true 似乎是错误的方法。有什么改进建议吗?干杯,克里斯

pp page.at('.//div[@class="errorMsg"]')

if page.at('.//div[@class="errorMsg"]') == true then
puts "Error message found on page"
end

最佳答案

true 比较不是正确的方法。 at如果没有找到任何东西,调用将返回 nil:

if page.at_css('div.errorMsg')
puts 'Error message found on page'
else
puts 'No error message found on page'
end

是一种方式,因为 nil 在 bool 上下文中是假的,但是 Nokogiri::XML::Node不会的我也切换到CSS notation因为我发现对于像这样的简单事情,它比 XPath 更清晰,但您可以自由使用 at_xpath或者将 XPath 或 CSS 选择器提供给 at(如果您更喜欢的话)。

此外,三个 at 方法返回第一个匹配元素或 nil,因此如果您只想检查是否存在,它们是不错的选择。

关于ruby - 如何在 Nokogiri/Ruby 解析期间检查页面上是否存在元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6958506/

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