之前跟大家分享过一个简单的php做的爬虫,今天给大家带来一个使用golang来制作的一个简单的爬虫工具!大家看在中秋节我还更文的份上大家多评论转发收藏一下哟~也祝大家中秋节快乐安康~
*使用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的一个小爬虫,抓取完毕后会直接生成一个文件进行保存,大家感兴趣的可以去玩一玩咯