diff options
Diffstat (limited to 'crawler/shop_bottleworld.go')
| -rw-r--r-- | crawler/shop_bottleworld.go | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/crawler/shop_bottleworld.go b/crawler/shop_bottleworld.go new file mode 100644 index 0000000..3a3c631 --- /dev/null +++ b/crawler/shop_bottleworld.go @@ -0,0 +1,65 @@ +package main + +import ( + "log" + "regexp" + // "strings" + + // "github.com/PuerkitoBio/goquery" + "github.com/gocolly/colly" +) + +func ScrapeBottleWord(shop Shop) []Angebot { + Whiskys := []Angebot{} + + c := colly.NewCollector( + colly.AllowedDomains("bottleworld.de"), + colly.AllowedDomains("www.bottleworld.de"), + ) + + c.OnHTML("li.item", func(e *colly.HTMLElement) { + W := Angebot{} + + whisky_name := e.ChildText("h2 > a") + + matched, err := regexp.MatchString("Whiske?y", whisky_name) + if err != nil { + log.Fatal(err) + } + if !matched { + //W.Spirit_type = "Anderes" + return + } else { + W.Spirit_type = "Whisky" + } + + whisky_url := e.ChildAttr("a", "href") + W.Name = whisky_name + W.Url = whisky_url + + e.ForEach(".price-box", func(i int, e *colly.HTMLElement) { + e.ForEach(".old-price", func(i int, e *colly.HTMLElement) { + W.Original_price, err = sanitize_price(e.ChildText(".price")) + if err != nil { + log.Fatal(err) + } + }) + e.ForEach(".special-price", func(i int, e *colly.HTMLElement) { + W.Discounted_price, err = sanitize_price(e.ChildText(".price")) + if err != nil { + log.Fatal(err) + } + }) + }) + W.Image_url = e.ChildAttr("img", "src") + + W.Shop = shop.Id + W.Spirit_type = "Whisky" + + Whiskys = append(Whiskys, W) + }) + + c.Visit("https://www.bottleworld.de/aktuelle-sonderpreise/show/all") + + return Whiskys +} |
