こんにちはT2です
Switchが全然売っていません(4/30現在)
どうやら毎週少しずつですが出荷はされている模様なんですが
それをいちいち見に行くのは面倒です。
ということでgoでamazonをスクレイピングするというのを試してみました。
まずAmazonでものが販売されているとはどういうことなのかを調べます
潤沢に在庫のあるゼルダのページを見ると
上記のように表示されています。
Switchはというと、Amazonではなくマーケットプレイスの店名が入っています
この商品は、ホニャホニャStoreが販売し、Amazon.co.jp が発送します。
ゼルダに立ち返って問題の箇所を確認するとid = merchant-infoにAmazon販売発送の旨が書いてあれば間違いなさそうです。
checkSwitch.go
package main
import (
"fmt"
"github.com/PuerkitoBio/goquery"
"strings"
)
const (
//Swith url
URL = "https://www.amazon.co.jp/Nintendo-Switch-Joy-Con-%E3%83%8D%E3%82%AA%E3%83%B3%E3%83%96%E3%83%AB%E3%83%BC-%E3%83%8D%E3%82%AA%E3%83%B3%E3%83%AC%E3%83%83%E3%83%89/dp/B01NCXFWIZ"
//キーワード
KEYWORD = "この商品は、Amazon.co.jp が販売、発送します。"
)
//ページのチェック
func CheckPage(url string) {
doc, _ := goquery.NewDocument(url)
t := doc.Find("#merchant-info").Text()
if strings.Contains(t, KEYWORD) {
fmt.Println("Switch売ってるよ!!!")
PostSlack()
} else {
fmt.Println("Switch売ってない!!!")
}
}
func main() {
CheckPage(URL)
}
全文を引っ張ってきて
doc, _ := goquery.NewDocument(url)
該当IDを選択して
t := doc.Find("#merchant-info").Text()
そのTextにキーワードが含まれていれば売っている
if strings.Contains(t, KEYWORD)
うーんとっても簡単
なおまだSwitchは入手できていません(´;ω;`)