こないだ、セールで買い逃したのでチェックするアプリを作ってみました。
package main import ( "context" "fmt" "log" "strings" "github.com/chromedp/chromedp" ) func main() { allocCtx, cancel := chromedp.NewExecAllocator(context.Background(), []chromedp.ExecAllocatorOption{ chromedp.NoFirstRun, chromedp.NoDefaultBrowserCheck, chromedp.Headless, }...) defer cancel() ctx, cancel := chromedp.NewContext(allocCtx, chromedp.WithLogf(log.Printf)) defer cancel() url := "https://www.sourcenext.com/product/0000013977/" xpath := `//*[@id="app-cart"]/div/div/section/div[2]/div/div[3]/div[1]/div[1]/div[2]/span[1]` xpath2 := `//*[@id="app-cart"]/div/div/section/div[2]/div/div[3]/div[1]/div[2]/div[2]/span[2]` var res string var res2 string err := chromedp.Run(ctx, chromedp.Navigate(url), chromedp.Text(xpath, &res), chromedp.Text(xpath2, &res2), ) if err != nil { log.Fatalln(err) } if res2 != "" { res = res2 } res = strings.Replace(res, ",", "", 1) t := "今日のスピークバディの価格は " + res + " 円です。" fmt.Println(t)
タスクスケジューラに入れておいて、通知送るようにすればセールでの買い逃しがないかも。