背景
在使用Go語言做爬蟲時,使用http.Get(url)
去獲取網頁內容,狀態碼返回404,Body體為空。
原因分析
http.Get(url)
是不需要設置header屬性的http請求,比較簡單快捷,但狀態碼返回418,表明我們需要設置其header屬性,那么我們可以使用http.NewRequest
,在設置其header屬性即可~
代碼部分
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
func main7() { client := &http.Client{} url := "https://movie.douban.com/top250?start=0&filter=" reqest, err := http.NewRequest("GET", url, nil) //設置header屬性 reqest.Header.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36 OPR/66.0.3515.115") if err!=nil { fmt.Println(err) return } response, _ := client.Do(reqest) defer response.Body.Close() buf := make([]byte,4096) var result string for { n,err:=response.Body.Read(buf) if n == 0 { fmt.Println("讀取網頁完成") break } if err!=nil && err!=io.EOF { fmt.Println("resp body err",err) return } result += string(buf[:n]) //打印讀取的網頁 fmt.Println(result) } } |
到此這篇關于Go語言做爬蟲狀態碼返回418的問題解決的文章就介紹到這了,更多相關Go語言爬蟲返回418內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/liu19721018/article/details/113099234