之前使用 Python requests ,设置如下,可以正常抓取数据。
cookie = {
'session': SESSION,
'__cf_bm': CF_BM
}
response = requests.post(url, cookies=cookie)
最近想使用 golang 重写,代码如下,结果发现页面反馈Please enable cookies,直接被 cloudflare 拦截,无法正常访问。
cookie := cookies{
session: session,
__cf_bm: CF_BM,
}
req.Header.Add("Cookie", "session="+cookie.session+"; theme="+cookie.theme+"; __cf_bm="+cookie.__cf_bm)
第一反应以为是代码写错了,用`https://httpbin.org/cookies`作为 url ,发现反馈的 cookies 正常,内容如下。结果对比,和 python 的反馈值一直,无区别。
{
"cookies": {
"__cf_bm": "ehOUuRclb1sJgFygWWcSli",
"session": "7586800e10"
}
}
随后在 stackoverflow 上找了了类似案例,[Python requests works fine, when trying same request in golang is not working as expected]( https://stackoverflow.com/questions/76503246/python-requests-works-fine-when-trying-same-request-in-golang-is-not-working-as)
目前状况
只能猜测 clouflare 对 golang 进行了额外的限制,学艺不精者使用 golang 访问就会失败。
想问问 V2 上有没有同行遇到了类似现象,泪目了~
cf_bm, Session, Golang, cookies