這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
【 聲明:著作權全部,歡迎轉載,請勿用於商業用途。 聯絡信箱:feixiaoxing @163.com】
眼下,網上關於網頁爬行的代碼非常多。可是,自從看了go語言的web下載代碼之後,我才發現原來它的網頁下載代碼才是最簡單的。不信的話,大家能夠看一下,
package main import( "fmt" "log" "net/http" "os") func main(){ resp,err:=http.Get("http://www.baidu.com") if err!=nil{ //handleerror fmt.Println(err) log.Fatal(err) } defer resp.Body.Close() if resp.StatusCode==http.StatusOK{ fmt.Println(resp.StatusCode) } buf:=make([]byte,1024) //createfile f,err1:=os.OpenFile("baidu.html",os.O_RDWR|os.O_CREATE|os.O_APPEND,os.ModePerm) if err1!=nil{ panic(err1) return } defer f.Close() for{ n,_:=resp.Body.Read(buf) if 0==n{ break } f.WriteString(string(buf[:n])) }}
這當中大家能夠注意這幾個函數就能夠了,各自是http.Get,os.OpenFile,resp.Body.Read,f.WriteString。能夠想象一下這幾個函數是做什麼用的。事實上正如它們名字介紹的那樣,它們的功能依次是http下載、建立檔案、讀取字元、寫檔案。不知道大家答對沒有。有興趣的朋友能夠將這部分代碼拷貝下來測試一下。
假設我沒有記錯,這部分代碼是從別處引用的。歡迎作者和我聯絡,我會在後面備忘一下。