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

このブログでは、フリーランス6期目となる自身の実体験から、フリーランスエンジニアになるためのノウハウ、ブログや沖縄移住、スリランカの最新情報について発信します。

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

※提携先の広告(リンク、バナー等)を含む場合があります

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


こんにちは、現役沖縄フリーランスエンジニアのmah(MaLanka)です。


このブログでは、

自分がIT未経験から約1年でフリーランスエンジニアになるまでの過程、

ノウハウなどを書いていきます。


今回は、

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

についてです。


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


【結論】


attribute() を使います。

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


参考リンク


RubyDoc.info: File: README – Documentation for selenium-webdriver (4.39.0) – RubyDoc.info

RubyでSeleniumを使ってスクレイピング #Ruby - 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


初めての方はこちらのオススメ記事もどうぞ


note.com


www.malanka.org


www.malanka.org


www.malanka.org


www.malanka.org