diff options
Diffstat (limited to 'crawler/shop_whiskyde.go')
| -rw-r--r-- | crawler/shop_whiskyde.go | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/crawler/shop_whiskyde.go b/crawler/shop_whiskyde.go new file mode 100644 index 0000000..657bfe0 --- /dev/null +++ b/crawler/shop_whiskyde.go @@ -0,0 +1,58 @@ +package main + +import ( + "log" + "strings" + + "github.com/gocolly/colly" +) + +func ScrapeWhiskyde(shop Shop) []Angebot { + Whiskys := []Angebot{} + + c := colly.NewCollector( + colly.AllowedDomains("whisky.de"), + colly.AllowedDomains("www.whisky.de"), + ) + + c.OnHTML(".is-buyable", func(e *colly.HTMLElement) { + + W := Angebot{} + whisky_name := e.ChildAttr("a", "title") + W.Name = whisky_name + whisky_url := strings.Replace(e.ChildAttr("a", "href"), "?&searchorigin=2", "", 1) + W.Url = whisky_url + + var err error + + e.ForEach(".article-price-original", func(i int, e *colly.HTMLElement) { + W.Original_price, err = sanitize_price(e.ChildText("del")) + if err != nil { + log.Fatal(err) + } + }) + e.ForEach(".article-price", func(i int, e *colly.HTMLElement) { + W.Discounted_price, err = sanitize_price(e.ChildText(".article-price-default")) + if err != nil { + log.Fatal(err) + } + }) + + e.ForEach(".article-thumbnail", func(i int, e *colly.HTMLElement) { + W.Image_url = e.ChildAttr("img", "data-src") + }) + + e.ForEach(".article-price-prefix", func(i int, e *colly.HTMLElement) { + //W.Valid_until = e.ChildText(".article-price-special") + }) + + W.Shop = shop.Id + W.Spirit_type = "Whisky" + + Whiskys = append(Whiskys, W) + }) + + c.Visit("https://www.whisky.de/shop/Aktuell/Sonderangebote/") + + return Whiskys +} |
