どうも、こんにちは。
Pythonでseleniumなどを使ってスクレピングをする場合、その結果をスマホに送ることができると便利です。
メールを送る方法もありますが、LINEに送ってしまうのが簡単です。
今回はその方法についてお話します。
使うのはLINE Notifyという無料サービスです。
https://notify-bot.line.me/ja/
まずはこの上記のサイトに行ってログインします。
スマホならLINE Notifyをともだち登録します。
それではこれから具体的に説明していきます。
LINE Notifyにログインする
右上にあるログインからログインします。LINEアカウントでログインします。


ログインできたら右上の方にあなたの名前が表示されるのでここをクリックし、「マイページ」にいきます。


マイページに行くと、「トークンを発行する」というボタンがありますのでクリックします。

すると、下の画像のようなページになります。

「トークン名」は適宜名前をつけます。
次に、自分にだけ通知を送る場合は、あなたのアイコンが表示されていて、「1:1でLINE Notifyから通知を受け取る」という部分を選択します。
最初は自分への通知で良いかもしれませんが、数が増えてくると通知を分けたくなります。
その時は、LINEの方で先にメンバーが自分だけのグループを作成します。
そうすると、このトークンの発行画面にグループ名が表示されるのでそれを選択します。
ちなみにグループの場合は、LINEのLINE Notifyをともだちとして追加しないといけないので適宜追加しましょう。
さて、「トークン名」と「トークルームの選択」ができたら下の「発行する」をクリックしましょう。
すると、下のような画面になります。

このように「発行したトークンはこちらです」と表示されますので、「コピー」をクリックしておきます。
LINE Notifyでやることはここまでです。
次にPythonへの実装に移ります。ここも簡単にできるのがLINE Notifyの良いところでしょうか。
PythonでLINE Notifyを実装する
それでは、トークンを取得できたら実際に実装していきます。
url = "https://notify-api.line.me/api/notify"
token = "ここに先ほど取得したトークンを貼り付ける"
headers = {"Authorization" : "Bearer "+ token}
message = "通知したい内容"
payload = {"message" : message}
r = requests.post(url, headers = headers, params=payload)
基本的な形はこれになります。
実際には、通知したい内容は商品名や商品の価格、リンクだったりします。
なので、以下のような形になります。
url = "https://notify-api.line.me/api/notify"
token = "先ほど取得したトークン"
headers = {"Authorization" : "Bearer "+ token}
message = '入荷あり\n'+item_name+'\n'+item_price+'\n'+item_url
payload = {"message" : message}
r = requests.post(url, headers = headers, params=payload)
このように文字列と変数を組み合わせてmessageを作成します。
item_name やitem_priceやitem_urlはこの前段階のスクレイピングで取得した結果を格納しておきます。
これでPythonで取得したデータをLINEで受け取れるようになります。
LINE Notifyのタイムラグ
このようにしてLINE Notifyを実装し通知を受け取れるようになったのは良いのですが、やはり他社製を使わせてもらうわけですのでどうしてもタイムラグが発生してしまいます。
大体30秒くらいでしょうか。人によっても時間帯や環境によっても違うかもしれませんが。
これをさらに縮めるには自分でPUSH通知の仕組みを作るしかないのかなぁなんて思っています。
まだこの部分については検討中ですので、また改善されたらこのブログでシェアしたいと思います。
それでは。
コメント