从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对页面数据的获取:我这里通过正则表达式来获取我要的东西。

 

posted @ 2019-04-15 20:16  子明  阅读(288)  评论(0编辑  收藏  举报