【配送手数料1000円なんて高すぎる!!】UberEATSで安く注文する〜全てはタピオカのために〜[再掲]


UberEATS CHEAPER

(間違って記事削除してしまったので再掲してます...)

TL; DR

UberEatsでタピオカミルクティーを頼みたいのに配送料が高すぎる
配送料が安くなったタイミングを通知できるようにした

GitHub

背景

私はタピオカミルクティーが好きです。正しくは、タピオカ抹茶ティーが大好きです。
口が寂しい時にタピオカミルクティーは丁度良いです。
糖分は取れるし、腹持ちいいし。
オフィスから歩いてタピオカミルクティーを買えるお店はありません。
なのでいつも UberEATSを利用させて頂いております。

しかし、いつも思うのです。
頼みたい時ってだいたい昼下がりの時間なんですけど、結構な頻度で
配送料高っっっっっっっっっっっっっ!!!!!!!!!!

と。頼むにしてはギリギリを超える手数料。

なので、配送料が安くなった時に通知してくれるプログラム作りました。

概要

Rubyツールです。
アクセス負荷がかからないくらいで5分おきにデータを取得し、安くなったかどうかを判断しています。
通知方法はSlackMacの通知センターの2つに対応しています
(他のサービス、Windowsなどは反響があれば作ろうかなと思います。)

技術的内容

seleniumで操作しながら情報を取得しています。
UberEatsでは、まずブラウザにお届け先の住所のデータをCookieで持つ必要があります。
その上で、お店の配送手数料や配送時間、そもそも配送可能かどうかが分かるようになります。
そのため、seleniumを利用しました。
一度お届け先の郵便番号を入力し、住所候補が出てきます。
出てきた住所候補をクリックしてCookieに住所情報を保持します。
その状態でお店のページに遷移します。
そうすると、住所を元に配送手数料が表示されます。
(色々調べたら緯度・経度を元にしていました。詳しくは別記事で書こうと思います。)

html要素はcssセレクター、xpathで取得していますが、html構造が変わったらこの
ツールは使えなくなるかもしれません。ご了承くださいませ。

使い方

$ bundle exec ruby ubereats_cheaper.rb [通知方法] [郵便番号] [希望配送手数料] [UberEATSのお店のURL] [Slack webhook url オプション引数]
  • 引数1 通知方法

mac(デフォルト)・・・macの通知センターから通知を送ります。画面右上からぴょこっと出てきます。
slack・・・Slackの特定のチャンネルに通知を送ります。引数5にてslack webhook urlが必要になります。

  • 引数2 郵便番号

[0-9]{6}のフォーマットで入力してください。

  • 引数3 希望配送手数料

数字を入力してください。ここで入力した数字よりも配送手数料が低くなったら通知がきます。

  • 引数4 UberEATSのお店のURL

ここにはお店の個別ページのURLを入力してください。
例:https://www.ubereats.com/ja-JP/tokyo/food-delivery/%E3%82%B7-%E3%82%A2%E3%83%AC%E3%82%A4-%E6%B8%8B%E8%B0%B7246%E5%BA%97-the-alley-shibuya-246/C7X1V9lWQ5KIoPq7YYLc4A/

  • 引数5 Slackwebhook url

https://www.sejuku.net/blog/74471
こちらを参考に、webhook urlを取得してください。一応このwebhook urlは後々削除されるとのことなので、反響があれば後々新しい方に切り替えようと思います。

コマンド例

bundle exec ruby ubereats_cheaper.rb 'slack' 
1070062 1000 'https://www.ubereats.com/ja-JP/tokyo/food-delivery/%E3%82%B7-%E3%82%A2%E3%83%AC%E3%82%A4-%E6%B8%8B%E8%B0%B7246%E5%BA%97-the-alley-shibuya-246/C7X1V9lWQ5KIoPq7YYLc4A/' 'https://hooks.slack.com/services/hoge1/hoge2/hoge3'

なお、bundle exec ruby ubereats_cheaper.rbだけで実行すると、macで、自分が最近よくいる南青山へ、大好きな渋谷のジ アレイ(有名なタピオカミルクティーのお店)の配送手数料が1000円(1000円より安くなることが割と少ない)よりも安くなった時に通知が来るようになっています。

インストール

  • このリポジトリをcloneしてください

$ git clone [email protected]:nochiraaa/ubereats_cheaper.git

  • $ bundle install --path vendor/bundleを実行

  • Chromeドライバをインストール。以下のURLより取得できます。
    https://sites.google.com/a/chromium.org/chromedriver/downloads
    もしくはHomebrewを使っている方は下記でもインストールができます。
    $ brew install chromedriver
    Homebrewが入っていない方はこちらから
    http://brew.sh/index_ja.html
    Chromeドライバのバージョンは最新のものであれば問題なく動くと思います。
    動作確認はChromeDriver 76.0.3809.68 (420c9498db8ce8fcd190a954d51297672c1515d5-refs/branch-heads/[email protected]{#864})で行っています。

今後の展開

シンプルな内容で作りましたが、下記の改善も検討中です!

  • 配送時間にも対応する
  • オススメのお店をレコメンド
  • 他に安いお店をレコメンド
  • 他に早く届くお店をレコメンド
  • 他のプラットフォームにも対応する
  • API的に動くようにする
  • firefox, IE, Edge, Safariにも対応する
  • アメリカでも使えるようにする
  • seleniumを使わず処理する