私は Nokogiri で HTML ドキュメントをスクレイピングしていますが、その多くにはタグが閉じられていない可能性があります。<p>
たとえば、「閉じられていない」タグを閉じたいと思います。
ドキュメントを調べて、「ノコギリが悪いマークアップを修正する」場所を確認しましたが、これを行う良い方法がわかりません。
おそらく、各要素をループして、一致しないタグを閉じる必要がありますか?
私は Nokogiri で HTML ドキュメントをスクレイピングしていますが、その多くにはタグが閉じられていない可能性があります。<p>
たとえば、「閉じられていない」タグを閉じたいと思います。
ドキュメントを調べて、「ノコギリが悪いマークアップを修正する」場所を確認しましたが、これを行う良い方法がわかりません。
おそらく、各要素をループして、一致しないタグを閉じる必要がありますか?
Nokogiri はそれらを自動的に修正します。
を使用inner_html
して、修正された HTML コードを取得できます
require 'rubygems'
require 'nokogiri'
doc = Nokogiri::HTML.parse('<p>')
doc.inner_html # => "<html><body><p></p></body></html>"
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">]>]>