前言
近期有些项目需要用到Golang,大概花了一周来看语法,然后就开始看爬虫相关的。这里记录下如何使用Golang来写爬虫的几个步骤,最终完成的效果如下图
环境
安装比较简单
sudo apt-get install golang # (Linux)
brew install go # (Mac)
安装之后注意`GOPATH`和`GOROOT`等环境变量设置,IDE用的是jetbrains家的GoLand。
建议先去看看Golang的官方文档,学习基本语法知识。地址:官方教程中文版、https://tour.go-zh.org/welcome/1
创建文档
新建文件`crawler.go`,并写入如下代码:
package main
import "fmt"
func main() {
fmt.Println("Hello, world")
}
运行方法:`go run crawler.go `,肉眼可见,编译速度比JAVA要快得多。
下载网页
这里先从Golang原生http库开始,直接使用`net/http`包内的函数请求
import "net/http"
...
resp, err := http.Get("http://wwww.baidu.com")
所以代码可以这样写
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func main() {
fmt.Println("Hello, world")
resp, err := http.Get("http://www.baidu.com/")
if err != nil {
fmt.Println("http get error", err)
return
}
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Println("read error", err)
return
}
fmt.Println(string(body))
}
Golang的错误处理就是这样的,习惯就好。
这里更好的做法是把下载方法封装为函数。
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func main() {
fmt.Println("Hello,