package main import ( log "github.com/Sirupsen/logrus" "regexp" "strings" "github.com/PuerkitoBio/goquery" "github.com/gocolly/colly" ) func ScrapeWhic(shop Shop) []Angebot { Shop_url := "https://whic.de/angebote" Whiskys := []Angebot{} c := colly.NewCollector( colly.AllowedDomains("whic.de"), ) c.OnHTML("li.item", func(e *colly.HTMLElement) { if e.Request.URL.String() != Shop_url { return } W := Angebot{} whisky_name := e.ChildAttr("a", "title") whisky_url := e.ChildAttr("a", "href") W.Name = whisky_name W.Url = whisky_url var err error e.ForEach(".price-box", func(i int, e *colly.HTMLElement) { e.ForEach(".old-price", func(i int, e *colly.HTMLElement) { W.Original_price, err = convert_price(e.ChildText(".price")) if err != nil { log.Fatal(err) } }) e.ForEach(".special-price", func(i int, e *colly.HTMLElement) { W.Discounted_price, err = convert_price(e.ChildText(".price")) if err != nil { log.Fatal(err) } }) }) base_price_noisy := e.ChildText(".base-price") W.Base_price, err = sanitize_base_price(base_price_noisy) if err != nil { log.Fatal(err) } /* * colly does not parse a