-
清晰明了的 API
-
速度快(每个内核上的请求数大于 1K)
-
管理每个域的请求延迟和最大并发数
-
自动 cookie 和会话处理
-
同步 / 异步 / 并行抓取
-
高速缓存
-
自动处理非 Unicode 编码
-
支持 Robots.txt
-
支持 Google App Engine
-
通过环境变量进行配置
-
可拓展
import "github.com/gocolly/colly"
c := colly.NewCollector()
// Find and visit all links
c.OnHTML("a[href]", func(e *colly.HTMLElement) {
link := e.Attr("href")
// Print link
fmt.Printf("Link found: %q -> %s\n", e.Text, link)
// Visit link found on page
// Only those links are visited which are in AllowedDomains
c.Visit(e.Request.AbsoluteURL(link))
})
c.OnRequest(func(r *colly.Request) {
fmt.Println("Visiting", r.URL)
})
-
OnRequest 请求执行之前调用
-
OnResponse 响应返回之后调用
-
OnHTML 监听执行 selector
-
OnXML 监听执行 selector
-
OnHTMLDetach,取消监听,参数为 selector 字符串
-
OnXMLDetach,取消监听,参数为 selector 字符串
-
OnScraped,完成抓取后执行,完成所有工作后执行
-
OnError,错误回调
c.Visit("http://go-colly.org/")
文章评论