ワシはワシが育てる

週刊少年ジャンプと任天堂のゲームが三度のメシより好きです。

壊れたHTMLに対するNokogiriの扱いでハマる

RubyによるスクレイピングといえばNokogiriが有名ですが、壊れたHTMLをパースすると自動で修復してくれるせいで大変困っております。

例えばこんな感じのHTMLの場合、ブラウザでは閉じていない<p>タグが無視されるのに対して、Nokogiriでは整合性を取ろうとするために、正しく要素を取得することができません。

<div id="omaeno">
  <h3 class="kaatyan">見出しだよ</h3>
  <div class="debeso">
    <p>おまえの
    <p>かあちゃん
    <p>でべそ</p>
  </div>
</div>

ブラウザと同じように処理してくれると助かるのですが、何か方法はあるのでしょうか。