网页下载
目前,网上关于网页爬行的代码很多。但是,自从看了 Go 语言的 Web 下载代码之后,我才发现原来它的网页下载代码才是最简单的。不信的话,大家可以看一下,
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]))
}
}
这其中大家可以注意这几个函数就可以了,分别是 http.Get,os.OpenFile,resp.Body.Read,f.WriteString。可以想象一下这几个函数是做什么用的。其实正如它们名字介绍的那样,它们的功能依次是 http 下载、创建文件、读取字符、写文件。不知道大家答对没有。有兴趣的朋友可以将这部分代码拷贝下来测试一下。