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 首部包含了一个特征字符串,用来让网络协议的对端来识别发起请求的用户代理软件的应用类型、操作系统、软件开发商以及版本号。

 

posted @ 2019-04-12 14:48  haoprogrammer  阅读(691)  评论(0)    收藏  举报