我无法使用 colly go 抓取福布斯顶级亿万富翁网站

I cannot web-scrape forbes top billionares website with colly go

package main

import (
"encoding/csv"
"fmt"
"os"

"github.com/gocolly/colly"
)

 func checkError(err error){
 if err!=nil{
    panic(err)
}
}
func main(){
fName:="data.csv"
file,err:=os.Create(fName)
checkError(err)
defer file.Close()
writer:=csv.NewWriter(file)
defer writer.Flush()
c:=colly.NewCollector(colly.AllowedDomains("forbes.com","www.forbes.com"))
c.OnHTML(".scrolly-table tbody tr", func(e *colly.HTMLElement) {
        writer.Write([]string{
            e.ChildText(".rank .ng-binding"),
        })
    })  
    c.OnError(func(_ *colly.Response, err error) {
        fmt.Println("Something went wrong:", err)
    })
    c.OnRequest(func(r *colly.Request) {
        fmt.Println("Visiting", r.URL)
    })
    c.OnResponse(func(r *colly.Response) {
        fmt.Println("Visited", string(r.Body))
    })
    c.Visit("https://forbes.com/real-time-billionaires/")
     }

这是我的代码,当我请求时我得到了后备页面,This is the link for forbes that i am trying to scrape

我注意到该网站使用哈希路径,它位于 url 的最后一部分,我不能用相同的 url 请求两次,我认为它在某种程度上与抓取有关,可以有人帮我解决这个问题吗?

如果您在浏览器中禁用 javascript,请确保可用的内容(您可以使用开发人员工具来实现)。大多数爬虫只会让您获得页面的文本表示,而浏览器也会 运行 javascript 引擎反对它。如果您尝试抓取的数据填充了 Javascript,这很可能就是您无法抓取它的原因。

Colly 只能用于静态抓取,chromedp 可用于抓取客户端呈现的应用程序。