You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Go语言Colly框架爬取福布斯实时富豪榜返回fallback页求助

福布斯反爬拦截解决方法

出现兜底页面的核心原因是福布斯平台有严格的爬虫识别规则,默认Colly的请求特征过于明显会被直接拦截。URL末尾的哈希属于前端路由标识,服务端不会接收处理,重复请求失败是请求特征被标记导致,和哈希参数无关。

具体修复步骤

  • 补全真实浏览器的请求头,替换Colly默认的爬虫标识UA,添加Accept、Accept-Language等常规请求头,避免被特征匹配直接拦截
  • 启用Collector的Cookie存储,保留会话标识,避免每次请求被判定为异常新访问
  • 添加请求间隔限制,降低访问频率,避免触发站点的频率控制规则
  • 确保请求的域名和AllowedDomains规则匹配,建议直接访问带www前缀的完整地址,避免301跳转过程中丢失请求参数

修改后可运行代码

package main

import (
	"encoding/csv"
	"fmt"
	"net/http/cookiejar"
	"os"
	"time"

	"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()

	// 初始化时启用CookieJar
	jar, _ := cookiejar.New(nil)
	c := colly.NewCollector(
		colly.AllowedDomains("forbes.com", "www.forbes.com"),
		colly.CookieJar(jar),
	)

	// 设置模拟浏览器的UA
	c.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
	// 设置请求头
	c.OnRequest(func(r *colly.Request) {
		r.Headers.Set("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8")
		r.Headers.Set("Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8")
		r.Headers.Set("Upgrade-Insecure-Requests", "1")
		fmt.Println("Visiting", r.URL)
	})

	// 添加访问频率限制
	err = c.Limit(&colly.LimitRule{
		DomainGlob:  "*forbes.com",
		Delay:       1 * time.Second,
		RandomDelay: 2 * time.Second,
	})
	checkError(err)

	// 注意这里的选择器如果拿不到数据,可打开浏览器控制台确认最新的节点类名,前端会迭代更新
	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.OnResponse(func(r *colly.Response) {
		fmt.Println("响应状态码:", r.StatusCode)
	})

	// 访问带www的完整地址
	c.Visit("https://www.forbes.com/real-time-billionaires/")
}

如果修改后仍然返回校验页面,可以通过本地搭建无头浏览器的方式绕过更复杂的JS反爬校验。

内容的提问来源于stack exchange,提问作者Rahul R Nair

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 10:15:03