スリ飯屋Malankaのフリーエンジニアな日々

IT実務未経験から約1年、東京でフリーランスのRuby on Railsエンジニアに転職。約2年半、大阪中崎町でスリランカカレーの間借りしてました。フリーランスエンジニアになるためのノウハウ、スリランカの事を発信していきます。

【Rubyでスクレイピング】Seleniumでdata属性を取得

【Rubyでスクレイピング】Seleniumでdata属性を取得

こんにちは、mahです。

このブログでは、

自分がIT未経験から約1年でフリーランスエンジニアになるまでの過程、ノウハウなどを書いていきます。


今回は、

  • Seleniumでのスクレイピングで、xpathでdata-XXXのような属性の値を取得する方法

について書きました。


やり方


attribute() を使います。

attribute('data-XXX') のような形です。


参考リンク


File: README — Documentation for selenium-webdriver (3.142.7)

RubyでSeleniumを使ってスクレイピング - Qiita


例、特定の要素の、data-remarks の値を取得する


# ブラウザ起動
driver = Selenium::WebDriver.for :chrome

# 対象のURLへ遷移する。戻り値はnil
driver.navigate.to 'https://hoge.com'

# data-remarksというプロパティを持つ要素を全て取得。戻り値は取得出来た要素の配列
driver.find_elements(:xpath, "//*[@id='search']/div[1]/div[2]/div/span[4]/div[1]/div[#{i + 1}]")[0].attribute('data-remarks'))


これで、data-XXXの値を取り出すことが出来ます。




以上、

  • Seleniumでのスクレイピングで、xpathを使ってdata-XXXのような属性の値を取得する方法

でした。


RubyでのスクレイピングはNokogiriでいいかと思ったんですが、

Nokogiriだと4〜6割の確率でページネーションを取得できない場合があります。

という情報があったので、怖すぎるなと思いseleniumを使うことにしました。


  • 引用元

http://smot93516.hatenablog.jp/entry/2019/01/11/132312


また、今回使用したSeleniumに必要なxpathやCSSセレクタをラクに確認する方法を、下記に載せています。

www.malanka.tech

よかったら参考にしてください。




このブログでは、

実務未経験からフリーランスエンジニアになるまでの過程、ノウハウなどを書いています。


下記の記事で、

  • 実務未経験から1年でフリーランスエンジニアになった話

  • 【完璧!】フリーエンジニアの案件面談対策 〜全20問〜

  • 【これでOK!】フリーエンジニアのスキルシートの書き方5つのポイント

  • 【脱失敗】フリーエンジニアの案件面談で必要な【5つのマインド】

を紹介しています。


ぜひチェックしてみてください。

www.malanka.tech

www.malanka.tech

www.malanka.tech

www.malanka.tech


もしよかったらTwiiterのフォローもお願いします★


最後までお読み頂きありがとうございました★