从0开始学golang--2.1--如何去爬园子的数据
20天过去了,才开始写。。。主要还是因为自己懒吧。之前一边上班一边也有挤时间练习golang,可是写博客却老是不能行动,跑步也没跑了。突然的就懈怠了快一个月。可能也和开始玩the elder scrolls online有关系,以后需要在工作-健身-娱乐三者之间找好平衡感。。昨天和今天先开始恢复了健走,差不多都是10公里。晚上再跑一会儿。。fighting
------------------------------------------------一个不专业的博客撰写者牢骚👆👆👆👆👆👆👆👆-----------------------------------------------------------
上代码
package main
import (
"fmt"
"io/ioutil"
"net/http"
"regexp"
)
func main() {
resp, err := http.Get( //获取数据
"https://www.cnblogs.com/")
//异常处理
if err != nil {
panic(err)
}
//清理变量
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK { //访问页面是否能访问通
fmt.Println("Error:status code ",
resp.StatusCode)
return
}
all, err := ioutil.ReadAll(resp.Body) //获取body数据
//捕捉异常
if err != nil {
panic(err)
}
//编写正则表达式
re := regexp.MustCompile(
"(https://[./a-zA-Z0-9]+\\.[a-zA-Z0-9#/?._-]+)[^>][*>]([^<]+)</a>")
//靠正则规则来获取自己想要的数据
match := re.FindAllSubmatch(all, -1)
//循环输出数据
for _, m := range match {
fmt.Printf("Name: %s, URL: %s \n ", m[2], m[1])
fmt.Printf("%s\n", m)
}
//输出数据长度
fmt.Printf("Match found:%d\n",
len(match))
}
想插入golang代码,发现没有。只好插入python语言中。
代码重点。
1:http.Get获取整个页面数据。
2.golang中的异常处理。
3.regexp.MustCompile对页面数据的获取:我这里通过正则表达式来获取我要的东西。