Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何使用具有特定td类的Nokogiri show节点_Ruby_Nokogiri - Fatal编程技术网

Ruby 如何使用具有特定td类的Nokogiri show节点

Ruby 如何使用具有特定td类的Nokogiri show节点,ruby,nokogiri,Ruby,Nokogiri,我在显示特定标记和类中的所有类时遇到问题 它应该显示链接中的所有四项,但它只显示第一项 IP应位于美国境内,以显示来自谷歌购物的商品: html = Nokogiri::HTML(open('https://www.google.com/shopping/product/13109814219830976487/plusbox/8460070?sa=X&ved=0ahUKEwjD7rnmjpTaAhVR4WMKHW1DB04QhxoIOQ')) puts html.css('td.d4Z

我在显示特定标记和类中的所有类时遇到问题

它应该显示链接中的所有四项,但它只显示第一项

IP应位于美国境内,以显示来自谷歌购物的商品:

html = Nokogiri::HTML(open('https://www.google.com/shopping/product/13109814219830976487/plusbox/8460070?sa=X&ved=0ahUKEwjD7rnmjpTaAhVR4WMKHW1DB04QhxoIOQ'))
puts html.css('td.d4Zjj').text
# => Microsoft Project 2010 Standard AE 1 PC
我希望看到:

Microsoft Project 2010 Standard AE 1 PC 

Microsoft Project 2010 Standard License 2 Installs  

Microsoft Project 2010 Standard Retail Box  

Microsoft Project 2010 Standard License (3 License) 

如果选择器正确,则当代码如下所示时,应获得一个数组:

html = Nokogiri::HTML(open('https://www.google.com/shopping/product/13109814219830976487/plusbox/8460070?sa=X&ved=0ahUKEwjD7rnmjpTaAhVR4WMKHW1DB04QhxoIOQ'))
html.css('td.d4Zjj').each do |em|
  puts em.text
end

您的示例列出了与d4Zjj类的td元素相对应的四个不同的文本元素。你认为会发生什么呢?我希望它会显示所有带有d4Zjj的元素。我在该URL的文档中只看到四个带有该类的元素,似乎代码对我来说是正确的。先生。它在其他链接上工作,但在这个链接上不是。这些类是动态的。不要期望它们停留太久。同样的情况也会发生,它只显示第一个项目,先生。使用css总是返回一个节点集,即使它是一个与选择器匹配的单个项目。节点集类似于数组。