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 填充的,那么很有可能这就是您无法抓取它的原因。
- 2 回答
- 0 关注
- 85 浏览
添加回答
举报
0/150
提交
取消