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

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

【Ruby スクレイピング】Seleniumで要素が空かどうか判定する

【Ruby スクレイピング】Seleniumで要素が空かどうか判定する

こんにちは、mahです。

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

今回は、Selenium Webdriverで要素が空かどうか判定する tipsです。

最近スクレイピングにハマっています。

色んなアイデアを掛け合わせられて楽しいです。

参考までにSeleniumのクイックリファレンスを載せておきます。

www.seleniumqref.com

Selenium Webdriverで要素が空かどうか判定する

スクレイピングするサイトによりますが、自分はamazonや楽天の商品を検索出来るサイトを対象にしています。

ECサイトの商品検索の導線は一般的に、

  1. キーワードで商品を検索

  2. 見つかれば商品を表示

  3. 見つからなければ「該当件数は0件です」と表示する

みたいな感じかと思います。

これを利用します。

対象にしているサイトは、キーワードに一致する商品が見つからない場合、

  • "該当する商品が見つかりませんでした"

というテキストが表示されます。

なのでそれを判定条件にしました。

下記、サンプルコードです。

# ヘッドレス(ブラウザを立ち上げない)で動かすためのオプションを生成
options = Selenium::WebDriver::Chrome::Options.new
options.add_argument('--headless')

# オプションを付与してnew
driver = Selenium::WebDriver.for :chrome, options: options

# idがsearch-resultの要素を取得し、その要素のテキストをチェック
driver.find_element(:id, 'search-result').text == "該当する商品が見つかりませんでした"

こんな感じで判定が出来ます。


以上、Selenium Webdriverで要素が空かどうか判定する方法 でした。

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

  • 「フリーエンジニアに興味がある」

  • 「フリーエンジニアになりたい」

という方は、下記の記事で、

  • 【必読】未経験からフリーランスエンジニアになるため必要な5つの行動

  • 【実体験】高卒文系が1年でRailsのフリーエンジニアになった話

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

  • 【好印象】フリーエンジニアのスキルシートの書き方5つのポイント

を紹介していますので、よかったらチェックしてみてください。

全て実体験 です。

www.malanka.tech

www.malanka.tech

www.malanka.tech

www.malanka.tech

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