Ruby の HTML パーサに Nokogiri があります。基本的な使い方は
- Nokogiri-GitHub
- Nokogiri を使った Rubyスクレイピング [初心者向けチュートリアル]
- RubyのNokogiriでギコギコスクレイピングだ
- Nokogiriでスクレイピング
とかを参考にしてもらえばいいんですが、パースした要素の特定の属性を置き換えたいとか追加で属性を追加したい時のメモです。
使い方は
1
|
|
1 2 3 4 5 6 7 8 9 10 |
|
Nokogiri に渡す HTML 文字列は <html>
から始まる必要はなく、部分的な HTML 文字列でも OK です。
部分 HTML を置き換えた場合は、取り出しは doc.css('body')[0].inner_html
になります。doc.to_html
だと <!DOCTYPE html><html>
から始まる文字列になってしまうので注意。
文字コードを指定する
Nokogiri は日本語に対応していますが、デフォルトで UTF-8 の文字エンコーディングになっているようです。なので Shift_JIS や EUC-JP の HTML を与えるとうまくパースできません。
そんな時は、次のようなコードで UTF-8 に変換してやれば OK です。
1
|
|