スリ飯屋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

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