
こんにちは、現役沖縄フリーランスエンジニアの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