之前跟大家分享过一个简单的php做的爬虫,今天给大家带来一个使用golang来制作的一个简单的爬虫工具!大家看在中秋节我还更文的份上大家多评论转发收藏一下哟~也祝大家中秋节快乐安康~ image.png image.png

*使用colly来做一个简单的爬虫

#安装colly
go get github.com/gocolly/colly

编写代码

package main

import(
    "log"
    "github.com/gocolly/colly"
    "os"//使用os,io包将爬取到的数据写入到文件中存储
    "io"
)

func main(){
    // 调用getHref()方法,传一个字符串类型的参数,进行相关网址的a链接内容抓取
    getHref("https://www.163.com/")

}

func getHref ( urls string ) {

    c := colly.NewCollector()
    visited := false

c.OnResponse(func(r *colly.Response) {
// log.Println(string(r.Body))
if !visited {
visited = true
r.Request.Visit("/get?q=2")
}
    })

    c.OnHTML("a[href]", func(e *colly.HTMLElement) {
href := e.Text
    log.Println(href)

    filename := "hrefText.txt"

    var f *os.File
    /***************************** 第一种方式: 使用 io.WriteString 写入文件 ***********************************************/
    if checkFileIsExist(filename) { //如果文件存在
    f, _ = os.OpenFile(filename, os.O_APPEND, 0666) //打开文件
    }else {
    f, _ = os.Create(filename) //创建文件
    }

    n, _ := io.WriteString(f, href +"\n", ) //写入文件(字符串).

    f.Close()   // 关闭文件

    if n == 0 {
    return
    }

})
c.Visit(urls)   // 访问被抓取的网站url

}

func checkFileIsExist(filename string) bool {
    var exist = true
    if _, err := os.Stat(filename); os.IsNotExist(err) {
    exist = false
    }
    return exist
}

运行


go run main.go

以上就是一个简单的抓取指定网页web的一个小爬虫,抓取完毕后会直接生成一个文件进行保存,大家感兴趣的可以去玩一玩咯