支持编写任何类型的爬虫:基于 Golang 的优雅爬虫框架 | 开源日报 No.216
以下是一个使用go-colly框架编写的简单网页爬取示例,用于抓取一个网页上的所有链接。
package main
import (
"fmt"
"log"
"github.com/gocolly/colly"
)
func main() {
// 初始化collector
c := colly.NewCollector()
// 在OnRequest回调中,可以自定义请求设置
c.OnRequest(func(r *colly.Request) {
fmt.Println("Visiting", r.URL.String())
})
// 在OnHTML标签中,可以解析HTML元素
c.OnHTML("a[href]", func(e *colly.HTMLElement) {
link := e.Attr("href")
// 过滤掉内部链接和外部链接
if link != "" && !e.DOM.Parent().HasClass("thumb") {
// 打印找到的链接
fmt.Println(link)
}
})
// 启动爬虫并爬取指定URL
c.Visit("https://example.com")
}
这段代码使用go-colly框架创建了一个简单的爬虫,它会访问"example.com"网站,并打印出网页上的所有外部链接。这个例子展示了如何使用go-colly快速地编写一个网页爬虫,并且它的简洁性和API的直观性使得它非常适合初学者学习和使用。
评论已关闭