package main import ( "regexp" "strings" "github.com/PuerkitoBio/goquery" "github.com/gocolly/colly" ) func (app *App) ScrapeWhic(shop Shop) []Angebot { Shop_url := "https://whic.de/angebote" Whiskys := []Angebot{} c := app.customCollector([]string{"whic.de"}) c.OnHTML("li.item", func(e *colly.HTMLElement) { if e.Request.URL.String() != Shop_url { return } W := Angebot{} W.Shop = shop.Id 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 { W.error_msg = err.Error() W.error_ctx = e.ChildText(".price") W.Println("Whic: Converting original price failed") return } }) e.ForEach(".special-price", func(i int, e *colly.HTMLElement) { W.Discounted_price, err = convert_price(e.ChildText(".price")) if err != nil { W.error_msg = err.Error() W.error_ctx = e.ChildText(".price") W.Println("Whic: Converting discounted price failed") return } }) }) base_price_noisy := e.ChildText(".base-price") W.Base_price, err = sanitize_base_price(base_price_noisy) if err != nil { W.error_msg = err.Error() W.error_ctx = base_price_noisy W.Println("Whic: Sanitizing base price failed") return } /* * colly does not parse a