机械化Ruby直接在标记内获取文本
我有一些html,看起来像这样机械化Ruby直接在标记内获取文本,ruby,mechanize,Ruby,Mechanize,我有一些html,看起来像这样 我想要什么 我不想要什么 获取文本的代码是 my_row=page.search('tr')。首先 将我的_行放入文本 问题是它会输出我想要的东西,而我不想要的东西 如何仅提取选定标记中的文本,而不提取任何子元素中的文本?您需要使用类似Nokogiri的东西来解析HTML 需要“nokogiri” html=” 我想要什么 我不想要什么 " doc=Nokogiri::HTML(HTML) text=doc.search('tr').xpath('text
我想要什么
我不想要什么
获取文本的代码是
my_row=page.search('tr')。首先
将我的_行放入文本
问题是它会输出我想要的东西,而我不想要的东西
如何仅提取选定标记中的文本,而不提取任何子元素中的文本?您需要使用类似Nokogiri的东西来解析HTML
需要“nokogiri”
html=”
我想要什么
我不想要什么
"
doc=Nokogiri::HTML(HTML)
text=doc.search('tr').xpath('text()'))
放text.text#我想要什么
我认为您可以访问tr
标记,然后访问b
子标记并将其删除,这样您就可以获得“主”tr内容:
require 'nokogiri'
data = <<-HTML
<tr>
What I want
<b>
What I don't want
</b>
<tr>
HTML
doc = Nokogiri::HTML.parse(data)
tr = doc.css('tr')
tr.css('b').remove
p tr.text
# "\n What I want\n \n\n"
需要“nokogiri”
data=我使用child/children进行此操作:
doc.at('tr').child.text
我知道使用Nokogiri,您可以page.search('tr').xpath('text()')
;你可以用Mechanize做类似的事情。
doc.at('tr').child.text