获取用户详细信息被禁止

来源:15-9 用户信息解析器(下)

一个橙子吧

2019-01-29

老师你好,在获取用户信息的时候,网页返回的是

403 Forbidden

403 Forbidden


nginx

被禁止了,没法测试了,这个怎么办呢

写回答

3回答

weixin_慕斯卡0544328

2019-01-30

Request 添加 header,header 中要有 User-Agent 字段。

具体做法如下:

把 Fetcher 的下面这一行:

resp, err := http.Get(url)

改成:

req, err := http.NewRequest("GET", url, nil)
if err != nil {
  return nil, err
}
req.Header.Add("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/71.0.3578.87 Safari/537.21")

client := http.Client{
  CheckRedirect: func(req *http.Request, via []*http.Request) error {
     fmt.Println("Redirect:", req)
     return nil
  },
}
resp, err := client.Do(req)

可以参考 net/http/client.go 关于 Get 函数的说明:

// ...

// To make a request with custom headers, use NewRequest and
// DefaultClient.Do.
func Get(url string) (resp *Response, err error) {
  return DefaultClient.Get(url)

2
9
abel_星123
回复
璀璨星空fly
非常感谢!!
2019-05-12
共9条回复

慕少1715565

2022-01-18

修改header如果还拿不到,建议可以从 https://www.zhenai.com/zhenghun/shanghai 城市页面拉取,不用再访问用户详情页;城市页面有用户信息,改动下代码

0
0

qq_白澤_0

2020-08-19

更改useragent还是会报错202。应该是反扒机制的问题。试试用代理。

0
0

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程