我正在使用Nokogiri抓取HTML文档,其中许多可能有未封闭的标签。例如,我想关闭“未关闭的”<p>
标签。
我查看了文档并查看了"Nokogiri corrects bad-markup,"的位置,但我没有看到这样做的好方法。
也许它需要循环遍历每个元素并关闭任何不匹配的标记?
答案 0 :(得分:7)
Nokogiri自动修复它们。
您可以使用inner_html
来获取更正的HTML代码
require 'rubygems'
require 'nokogiri'
doc = Nokogiri::HTML.parse('<p>')
doc.inner_html # => "<html><body><p></p></body></html>"
答案 1 :(得分:4)
你不需要为Nokogiri做任何特殊的事情来关闭未关闭的标签。看看这个:
1.9.3p327 :001 > require 'nokogiri'
=> true
1.9.3p327 :002 > doc = Nokogiri::XML.parse('<a><b></b>')
=> #<Nokogiri::XML::Document:0xee4a80 name="document" children=[#<Nokogiri::XML::Element:0xee4710 name="a" children=[#<Nokogiri::XML::Element:0xee4508 name="b">]>]>