Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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 on rails 如何使用Nokogiri查找页面上的文本_Ruby On Rails_Ruby_Nokogiri - Fatal编程技术网

Ruby on rails 如何使用Nokogiri查找页面上的文本

Ruby on rails 如何使用Nokogiri查找页面上的文本,ruby-on-rails,ruby,nokogiri,Ruby On Rails,Ruby,Nokogiri,我正在尝试用Nokogiri找到在页面上查找单词的最佳方法 我有一个页面包含以下文本 <p>Modelo: ABC123-A</p> Modelo:ABC123-A 我想找到“Modelo:文本,然后在它后面找到型号 我四处看了看,但似乎找不到。所以,我想我会在这里发帖子,看看是否有任何有过Nokogiri经验的人可以为我解释一下。一个简单的例子: doc = Nokogiri::HTML('<html><body><p>Model

我正在尝试用Nokogiri找到在页面上查找单词的最佳方法

我有一个页面包含以下文本

<p>Modelo: ABC123-A</p>
Modelo:ABC123-A

我想找到“Modelo:文本,然后在它后面找到型号

我四处看了看,但似乎找不到。所以,我想我会在这里发帖子,看看是否有任何有过Nokogiri经验的人可以为我解释一下。

一个简单的例子:

doc = Nokogiri::HTML('<html><body><p>Modelo: ABC123-A</p></body></html>')
doc.css('p').first.content  # => Modelo: ABC123-A
str.split( ': ' )[-1]  # => ABC123-A
doc=Nokogiri::HTML(“Modelo:ABC123-A

”) doc.css('p').first.content#=>Modelo:ABC123-A str.split(':')[-1]#=>ABC123-A

您也可以尝试,它比Nokogiri轻。

使用
p:contains
选择器并获取匹配的
p
节点

doc = Nokogiri::HTML('<html><body><p>Modelo: ABC123-A</p><br/><p>Nothing here</p><p>Modelo: 4321</p></body></html>')
doc.css('p:contains("Modelo")').map { |x| x.text.split(': ').last }
#=> ["ABC123-A", "4321"]
doc=Nokogiri::HTML(“Modelo:ABC123-A


这里什么都没有

Modelo:4321

”) doc.css('p:contains(“Modelo”)).map{x | x.text.split(':').last} #=>[“ABC123-A”,“4321”]
你为什么不使用
watir
来做这项工作?很好,但这不只是一个测试吗?谢谢Mat,我会看看Oga。看起来很有趣。干杯,孩子们,我来试试这个:)