価格.com で、HP Spectre x360 の価格を引っこ抜いてきて、LINE へ通知させる。
前半は、BeautifulSoup を使って、価格を部分をスクレイピング。
スクレイピングで、抜き出したい情報を成形しようとヘタな書き方になっているが、とりあえず価格のみを出せた。
後半は、LINE の LINE Notify を使って、価格情報を通知。
LINE Notify
https://notify-bot.line.me/ja/
ログインするには、予めLINEアプリの「設定」で、アカウント>メールアドレス が[登録完了]になっている必要がある。
headersの Bearer の後ろの半角スペースが必要。
通知文は、payloadにまとめてあるが、msg 部分 と スクレイピングしてきた価格部分
IFTTTを使ってみて、連携していくことも考えたい。
前半は、BeautifulSoup を使って、価格を部分をスクレイピング。
スクレイピングで、抜き出したい情報を成形しようとヘタな書き方になっているが、とりあえず価格のみを出せた。
# pull out "price" from 価格.com
from bs4 import BeautifulSoup
import urllib as req
url="http://kakaku.com/item/J0000024058"
res=req.urlopen(url)
soup=BeautifulSoup(res, "html.parser")
price=soup.select_one(".colorprice")
price=price.encode('utf_8')
price=price.split('<span>')
price=price[1].split('</span>')
後半は、LINE の LINE Notify を使って、価格情報を通知。
LINE Notify
https://notify-bot.line.me/ja/
ログインするには、予めLINEアプリの「設定」で、アカウント>メールアドレス が[登録完了]になっている必要がある。
headersの Bearer の後ろの半角スペースが必要。
通知文は、payloadにまとめてあるが、msg 部分 と スクレイピングしてきた価格部分
取り敢えず、これでやりたかったことはできた。今は簡単にできてしまう。# Notification to LINE
import requests
token="XXXXXXXXXXXXXXXXXXXXXXXXX"
url="https://notify-api.line.me/api/notify"
msg="HP Specre x360: "
payload={"message": msg + price[0]}
headers={"Authorization": "Bearer " + token}
line_notify=requests.post(url, headers=headers, params=payload)
IFTTTを使ってみて、連携していくことも考えたい。
コメント