首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我不能用colly go在福布斯前亿万网站上搜索

我不能用colly go在福布斯前亿万网站上搜索
EN

Stack Overflow用户
提问于 2021-11-01 05:07:38
回答 2查看 174关注 0票数 0
代码语言:javascript
复制
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

我已经注意到网站使用散列路径,这是在网址的最后一部分,我不能请求与同一网址两次,我认为它在某种程度上与抓取有关,有人能帮我吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-11-01 05:23:11

如果您在浏览器中禁用javascript,请确保可用(您可以使用开发人员工具执行此操作)。大多数抓取器只能得到页面的文本表示,而浏览器也会对其运行javascript引擎。如果你试图抓取的数据是用Javascript填充的,那么很有可能这就是你不能抓取它的原因。

票数 2
EN

Stack Overflow用户

发布于 2021-11-01 13:56:04

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69792838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档