溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么解決Go語言做爬蟲狀態(tài)碼返回418的問題

發(fā)布時間:2021-12-14 12:35:06 來源:億速云 閱讀:335 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹怎么解決Go語言做爬蟲狀態(tài)碼返回418的問題,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

背景

?在使用Go語言做爬蟲時,使用http.Get(url)去獲取網(wǎng)頁內(nèi)容,狀態(tài)碼返回404,Body體為空。

怎么解決Go語言做爬蟲狀態(tài)碼返回418的問題

原因分析

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

代碼部分

func main7()  {
	client := &http.Client{}
	url := "https://movie.douban.com/top250?start=0&filter="
	reqest, err := http.NewRequest("GET", url, nil)
	//設(shè)置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("讀取網(wǎng)頁完成")
			break
		}
		if err!=nil && err!=io.EOF {
			fmt.Println("resp body err",err)
			return
		}
		result += string(buf[:n])
		//打印讀取的網(wǎng)頁
		fmt.Println(result)
	}
}

以上是“怎么解決Go語言做爬蟲狀態(tài)碼返回418的問題”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI