地方でリモートワーク

プログラミング、先物、fx,仮想通貨なんでもやります

Rubyでスクレイピング!商品の入荷情報を自動で取得するRubyスクリプト

スポンサーリンク

f:id:ihatov08:20170208215245j:plain

商品の入荷情報を自動で取得するRubyスクリプトを書きました。

昇降デスクの購入を検討しているのですが、狙っている商品が在庫切れの状態です。

f:id:ihatov08:20180625231204p:plain

いちいちサイトを確認するのも面倒なので、商品情報を取得するRubyスクリプトを書きました。 俗にいうスクレイピングってやつです。

必要なのはmechanize gemです。

github.com

gem install mechanize

まずはrequireします。

require 'mechanize'

mechanizeのagentを作成

agent = Mechanize.new

取得したいページのurlを指定します。

page = agent.get("https://www.fleximounts.jp/product-category/height-adjustable-desks/")

取得したい要素のxpathを取得します。 下記操作でxpathは取得できます。

  1. chromeで右クリックして「検証」
  2. さらに要素を右クリックして「Copy」
  3. 「Copy xpath」
page.search('//*[@id="main-content"]/div[2]/div/div/div/div/div[2]/div[1]/div/div[1]/div[2]/a').text

=> "FlexiSpot 電動昇降デスクセット オフィス立位、座位交換ソリューション【E3B.E3S在庫切れ、6月25日再入荷】"

実行時点ではまだ在庫切れですね。 早く入荷しないかな?

コード全部です。

require 'mechanize'

agent = Mechanize.new

page = agent.get("https://www.fleximounts.jp/product-category/height-adjustable-desks/")

puts page.search('//*[@id="main-content"]/div[2]/div/div/div/div/div[2]/div[1]/div/div[1]/div[2]/a').text

Rubyでスクレイピングは簡単ですね!