为了账号安全,请及时绑定邮箱和手机立即绑定

我不能用 colly go 抓取福布斯顶级亿万富翁网站

我不能用 colly go 抓取福布斯顶级亿万富翁网站

Go
牛魔王的故事 2022-10-10 18:03:03
package mainimport ("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/")     }这是我的代码,当我请求我得到后备页面时,这是我试图抓取的福布斯链接我注意到该网站使用的哈希路径位于 url 的最后一部分,我无法使用相同的 url 请求两次,我认为它与抓取有关,有人可以帮我吗?
查看完整描述

2 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

如果您在浏览器中禁用 javascript,请确保可用的内容(您可以使用开发人员工具进行操作)。大多数抓取工具只会为您提供页面的文本表示,而浏览器也会针对它运行 javascript 引擎。如果您尝试抓取的数据是用 Javascript 填充的,那么很有可能这就是您无法抓取它的原因。



查看完整回答
反对 回复 2022-10-10
?
炎炎设计

TA贡献1808条经验 获得超4个赞

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



查看完整回答
反对 回复 2022-10-10
  • 2 回答
  • 0 关注
  • 85 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信