golang爬虫403问题
golang爬虫403问题
如题:出现浏览器可以对该URL进行访问,可是 http.Get(url) 爬取时则返回403问题
resp, err := http.Get(url)
解决:
模拟浏览器访问:
1.获取user-agent

2.修改代码
将原先
resp, err := http.Get(url) defer resp.Body.Close()
修改为:设置 User-Agent
client := &http.Client{}
req, err := http.NewRequest("GET", url, nil)
if err != nil {
log.Fatalln(err)
}
req.Header.Set("User-Agent",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36")
resp, err := client.Do(req)
if err != nil {
log.Fatalln(err)
}
defer resp.Body.Close()
即可访问正常。
扩展:
User-Agent 首部包含了一个特征字符串,用来让网络协议的对端来识别发起请求的用户代理软件的应用类型、操作系统、软件开发商以及版本号。

浙公网安备 33010602011771号