見出し画像

バイクが入荷されたら通知するプログラム作った(Goobike/GAS)

去年なんとなくバイクが欲しくなり、7月に普通二輪免許を取得し8月にホンダのレブル250を納車しました。

そして現在、レブルに乗り始めて7ヶ月くらいですが…新しいバイクがほしい!!

欲しいバイクはヤマハのXVS1300Aです。通称V-Star1300とかMidnight Starとか呼ばれてますね。これ↓↓↓

YAMAHA-XVS1300A

このバイク実は海外向けモデルなので日本で販売されていないうえ、廃盤なので中古車しかない状態で、流通数がマジで少ない。

いつもGoobike(全国の販売中のバイクを一覧検索できるサイト)に張り付いて見てるんですが、なかなか良いのが出てきません。

最近では常に3件表示されるのですが、もっと安い車体が出てこないか待っている状況です。

毎日サイトを見るのが大変なので、新しいバイクが掲載されたら通知するようなプログラムを作りました。

作っていく

今回はプログラムを作る経緯が長かったですね…

要するにGoobikeで特定のバイクが新しく追加されたら通知するプログラムです

今回もGoogle Apps Scriptを使っていきます。

実はスクレイピングもできるらしいので、始めてライブラリというものを使ってみます。

スクレイピングするサイトはこれ

使用するライブラリはParserで、GASのエディタ画面で左のライブラリの「+」ボタンをクリックして下記のIDを入力して「追加」を押せばインポートできます。

1Mc8BthYthXx6CoIz90-JiSzSafVnT6U3t0z_W3hLTAX5ek4w0G_EIrNw

あとはコードを書くだけ。オリャオリャオリャオリ💻🤛🤛🤛

function myFunction() {

  let getResponse = UrlFetchApp.fetch("https://www.goobike.com/maker-yamaha/car-xvs1300a/index.html");
  let html = getResponse.getContentText();

  var divs = html.match(/<div class="bike_sec">/g);

  var num = divs.length

  var message = '検索結果は【'+num+'】件です。';
  if (parseInt(num) != 3){
    message += '\n\n詳細をチェック::https://www.goobike.com/maker-yamaha/car-xvs1300a/index.html';
  }
  var accessToken = 'LINE Notifyのアクセストークン';
  var lineNotifyApi = 'https://notify-api.line.me/api/notify';

  var option = {
    'method': 'post',
    'headers': {
      'Authorization': 'Bearer ' + accessToken, 
    },
    'payload': {
      'message': message
    },
  };
  var response = UrlFetchApp.fetch(lineNotifyApi, option);
  if (parseInt(response.getResponseCode()) != 200){
    Logger.log("message:"+message);
    Logger.log(response.getContentText());
  }
}

トリガーで毎日0時~1時に実行するよう設定します。

コードの解説ですが、12行目で表示件数が3件かどうかを判別しています。

すでに既存の3件は把握しているので、3件のままなら「検索結果は【3】件です」と通知するだけ。

もし4件とか5件だった場合、新しい掲載が追加されているということなので、先程の内容に加えてURLを貼りけることで、通知が来た時すぐ確認できるようにしました。

まとめ

Goobikeで新しい掲載が追加されたら通知してほしいと思ったら…

  1. Googleアカウントにログインする

  2. Google Apps Scriptで新しいプロジェクトを作る

  3. コード.gsに上記のコードをコピペする

  4. ライブラリに上記のIDをコピペしてParserを追加する

  5. トリガーを設定する

じゃあ後は自分で好きなようにカスタムしてくれ。


この記事が気に入ったらサポートをしてみませんか?