1. 程式人生 > 其它 >解決Go語言做爬蟲狀態碼返回418

解決Go語言做爬蟲狀態碼返回418

技術標籤:golang爬蟲gohttp

背景

 在使用Go語言做爬蟲時,使用http.Get(url)去獲取網頁內容,狀態碼返回404,Body體為空。
在這裡插入圖片描述

原因分析

http.Get(url)是不需要設定header屬性的http請求,比較簡單快捷,但狀態碼返回418,表明我們需要設定其header屬性,那麼我們可以使用http.NewRequest,在設定其header屬性即可~

程式碼部分

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) } }

 問題解決~