我想解析一个HTML页面,我只想获得<h1>
内的所有文本。<h6>
标签。
我的实际脚本是:
doc = Nokogiri::HTML(open(s3_page_url).read)
doc.css('h1, h2').each do |link|
puts link.text
end
下面是我的测试代码:
html = '<html><head><title><h1>foo</h1><h2>bar</h2></title><body><p>bar</p></body></html>'
doc = Nokogiri::HTML(html)
doc.css('h1').each do |link|
puts link.text
end
提示符:
foo
问题是我想得到foo bar
首先使用#map
获取文本数组。然后#join
用您选择的分隔符构造一个字符串。
#!/usr/bin/env ruby
require 'nokogiri'
html = <<-STRING
<html><head><title><h1>foo</h1><h2>bar</h2></title><body><p>bar</p></body></html>
STRING
doc = Nokogiri::HTML::DocumentFragment.parse(html)
doc.css('h1, h2').map(&:text).join(" ") # => "foo bar"