Вам нужно добавить заголовок User-Agent для того, чтобы он возвращал данные. Также кажется, что p13n-sc-truncated
является сгенерированным именем класса. Например, вы можете использовать следующее:
package main
import (
"log"
"strings"
"github.com/gocolly/colly"
)
type AmazonData struct {
Index int
Link string
Title string
}
func main() {
c := colly.NewCollector()
var data []AmazonData
count := 1
c.OnHTML(`#zg-ordered-list`, func(e *colly.HTMLElement) {
e.ForEach("li .zg-item", func(_ int, elem *colly.HTMLElement) {
link := elem.DOM.Find("a")
linkHref, _ := link.Attr("href")
data = append(data, AmazonData{
Index: count,
Link: linkHref,
Title: strings.TrimSpace(link.Find("div").Text()),
})
count++
})
log.Println(data)
})
c.OnRequest(func(r *colly.Request) {
r.Headers.Set("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36")
})
c.Visit("https://www.amazon.in/gp/bestsellers/electronics/ref=zg_bs_nav_0/")
}