目前,網(wǎng)上關(guān)于網(wǎng)頁爬行的代碼很多。但是,自從看了 Go 語言的 Web 下載代碼之后,我才發(fā)現(xiàn)原來它的網(wǎng)頁下載代碼才是最簡單的。不信的話,大家可以看一下,
package main
import(
"fmt"
"log"
"net/http"
"os"
)
func main(){
resp,err:=http.Get("http://www.jikexueyuan.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]))
}
}
這其中大家可以注意這幾個(gè)函數(shù)就可以了,分別是 http.Get,os.OpenFile,resp.Body.Read,f.WriteString??梢韵胂笠幌逻@幾個(gè)函數(shù)是做什么用的。其實(shí)正如它們名字介紹的那樣,它們的功能依次是 http 下載、創(chuàng)建文件、讀取字符、寫文件。不知道大家答對沒有。有興趣的朋友可以將這部分代碼拷貝下來測試一下。