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

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

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

※記事内に提携先企業のアフィリエイト広告(リンク、バナー等)、Google広告を含む場合があります

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

こんにちは、mahです。

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

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

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




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 == "該当する商品が見つかりませんでした"

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

参考リンク

www.seleniumqref.com




RailsやRubyを学びたい人へ


RailsやRubyを学びたい人は、

RailsHack(レイルズハック)という、

最近できた新しいプログラミングスクール(今なら通常価格69,800円が、早期割で29,800円!)か、

Udemy で下記のコースを受講すると良いです★


✅1. フルスタックエンジニアが教える 即戦力Railsエンジニア養成講座

✅2. 【はむ式】ハンズオンで学ぶRuby on Rails 6【Dockerにも触れられる】 <- おすすめ。ハムさんはReactやTypeScriptの教材も非常に丁寧。

✅3. はじめてのRuby on Rails入門-RubyとRailsを基礎から学びWebアプリケーションをネットに公開しよう




また、

Udemy は定期的にセールをやっていますし(90%OFFとかもザラ)、

「30日間なら返金できる」ので、

満足できなかった時でも安心です。


f:id:mah666hhh:20201129193352p:plain


【公式】RailsHack(レイルズハック)

【公式】Udemyで学んでみる