colly [11.9k]

最后更新于:2022-04-02 02:41:25

[TOC] * Colly Github:[https://github.com/gocolly/colly](https://github.com/gocolly/colly) * Colly 文档:[https://pkg.go.dev/github.com...](https://pkg.go.dev/github.com/gocolly/colly/v2?tab=doc) * Crawlab Github:[https://github.com/crawlab-te...](https://github.com/crawlab-team/crawlab) * Crawlab 官网:[https://crawlab.cn](https://crawlab.cn/) * Crawlab 演示:[https://demo-pro.crawlab.cn](https://demo-pro.crawlab.cn/) ## 特性 * 清洁API * 快速(单个内核上> 1k请求/秒) * 管理请求延迟和每个域的最大并发 * 自动cookie和会话处理 * 同步/异步/并行抓取 * 分布式刮 * 快取 * 自动编码非unicode响应 * Robots.txt支持 * Google App Engine支持 ## 与 Crawlab 可视化 ``` » crawlab upload go.mod go.sum baidu_spider.go uploaded successfully ``` Crawlab 的爬虫详情界面中输入执行命令`go run baidu_spider.go` 点击运行 ## 实例 ### 官方实例 ``` func main() { c := colly.NewCollector() // Find and visit all links c.OnHTML("a[href]", func(e *colly.HTMLElement) { e.Request.Visit(e.Attr("href")) }) c.OnRequest(func(r *colly.Request) { fmt.Println("Visiting", r.URL) }) c.Visit("http://go-colly.org/") } ``` ### 百度top 热点 ``` package main import ( "fmt" "github.com/gocolly/colly" ) func main() { c := colly.NewCollector() // 获取所有的 href c.OnHTML(".title-content", func(e *colly.HTMLElement) { fmt.Printf("%+v\n", e.ChildText(".title-content-title")) }) c.OnRequest(func(r *colly.Request) { fmt.Println("Visiting", r.URL) }) c.Visit("http://www.baidu.com") } //输出 //杜特尔特称优先采购中俄疫苗 //黄子韬悼念爸爸 //云南瑞丽全员核酸检测 //2020百度世界大会 //狗不理解除与王府井店加盟方合作 //关晓彤老虎菜拌魔芋粉 ``` ### 更多实例查看 官方例子 https://github.com/gocolly/colly/tree/master/_examples
';