Ruby Nokogiriでスクレイピングした際に覚えた事・サンプル

Ruby gem Nokogiriでスクレイピングした際に覚えた事・サンプルを記載しておきます。

勉強まっただ中なので随時追記していきます。

スポンサーリンク

導入

テンプレ

サンプル集

Normalblogのaタグ内テキストをCSVに出力

スクレイピングした結果をCSVに出力するのをメインにして使っていました。下のサンプルでencodeしているのはwindows環境で実行した際にこれを入れないと表示出来なかった為です。他の環境だと違うのかもしれません。

.css

CSSセレクタを使用して要素を抽出します。CSSに慣れていない為、これが結構難しかったので色々やった事を書いていきます。

普通に要素を指定

.cssの中にCSSと同じように指定できます。

以後は「html = Nokogiri::HTML(open(“https://normalblog.net”))」の一文省略します。

ID指定

クラス名指定

指定ID配下の指定クラス

隣りの要素を指定

h1の隣りのh2を指定します。

指定IDを持つ要素

詳しくわかりませんがcss4で実装される?hasというのが使えるようです。

指定IDを持つ要素の隣りの要素を指定

1個上と2個上の例が統合された場合の例です。スクレイピングする先がID一発で取得出来たり、クラス名だけど取得出来たりするのはまれで、結構こんな感じでゴリゴリ書いていくのがメインでした。

または or

これもCSSと同じようにカンマで区切れます。結構スクレイピング先が同じパターンで書かれている事って少なく、例外がちょくちょく出てきます。その際にこれを使っています。コードで見るとカオスな事になってくるのが悩みです・・・。

XPATH

より抽象的に取得しようとするとXPATHを使用した方が良かったです。以下にまとまっていました。

参考サイト様

https://qiita.com/rllllho/items/cb1187cec0fb17fc650a

ここに書いてあるXPATHをブラウザで瞬時に表示出来るChromeの拡張機能がすごい便利です。悩みから一気に解放された感があります。

全然勉強中なのですが参考になれば何よりです。また追記します!