日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

框架 go_Colly - 优雅极速的Go语言爬虫框架

發布時間:2025/3/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 框架 go_Colly - 优雅极速的Go语言爬虫框架 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

寫爬蟲,Python 是目前的第一選擇,但總覺得 Python 太慢了,而且缺乏靜態類型。能不能換 Go 語言來試試呢?Colly,這個既優雅又快速的 Go 語言爬蟲框架,是你的不二選擇。

爬蟲框架

簡介

Colly,是 gocolly 組織在 Github 上開源的 Go 語言爬蟲框架,代碼倉庫在 https://github.com/gocolly/colly,目前版本為 2.1.0。Colly 具有簡潔的 API 設計;性能優越,單核上能達超越每秒一千請求;具備同步、異步和并行模式;支持緩存,能管理請求延遲和最大并發數;自動的 Cookie 和 Session 處理;自動的非 Unicode 響應編碼處理;支持分布式爬取等等。

Colly框架

安裝

使用 go get 直接安裝:

go get -u github.com/gocolly/colly/v2

示例

我們首先來看一個簡單的例子:

package mainimport ( "fmt" "github.com/gocolly/colly/v2")func main() { // 初始化默認的收集器 c := colly.NewCollector( // 設置只訪問設定的域名 colly.AllowedDomains("hackerspaces.org", "wiki.hackerspaces.org"), ) // 對于每一個包含href屬性的a元素,執行回調 c.OnHTML("a[href]", func(e *colly.HTMLElement) { link := e.Attr("href") // 輸出鏈接 fmt.Printf("Link found: %q -> %s", e.Text, link) // 訪問鏈接 c.Visit(e.Request.AbsoluteURL(link)) }) // 在進行每個請求前輸出URL c.OnRequest(func(r *colly.Request) { fmt.Println("Visiting", r.URL.String()) }) // 開始爬取 c.Visit("https://hackerspaces.org/")}

可以看到,Colly 主要使用收集器 Collector 作為主界面進行爬取,首先進行了 Collector 的實例化,并進行了相關配置,限制了爬取過程的域名,防止爬取到其他網站。

然后,使用回調函數的掛載實現爬取過程中的處理。使用 OnHTML 實現對于特定 HTML 元素的處理,獲取頁面上所有鏈接,并進行遞歸訪問;使用 OnRequest 實現對于每一個請求的處理,進行請求信息的輸出。

最后,使用收集器的 Visit 接口開始第一個頁面爬取,啟動了爬蟲。

我們可以對訪問的 URL 進行更為復雜的篩選,使用 Colly 的 URLFilters:

c := colly.NewCollector(// Visit only root url and urls which start with "e" or "h" on httpbin.orgcolly.URLFilters(regexp.MustCompile("http://httpbin.org/(|e.+)$"),regexp.MustCompile("http://httpbin.org/h.+"),),)

此外,Colly 對于 HTTP 代理有很好的支持,可以支持代理列表的自動輪轉選擇:

rp, err := proxy.RoundRobinProxySwitcher("socks5://127.0.0.1:1337", "socks5://127.0.0.1:1338")c.SetProxyFunc(rp)

RoundRobinProxySwitcher 實現了對于兩個 SOCKS 代理的輪流使用。

另外,可以使用 Redis 作為存儲實現一個請求隊列以控制并發:

package mainimport ( "log" "github.com/gocolly/colly" "github.com/gocolly/colly/queue" "github.com/gocolly/redisstorage")func main() { urls := []string{ "http://httpbin.org/", "http://httpbin.org/ip", "http://httpbin.org/cookies/set?a=b&c=d", "http://httpbin.org/cookies", } c := colly.NewCollector() // 創建Redis儲存 storage := &redisstorage.Storage{ Address: "127.0.0.1:6379", Password: "", DB: 0, Prefix: "httpbin_test", } // 添加儲存到收集器 err := c.SetStorage(storage) if err != nil { panic(err) } // 清空存儲 if err := storage.Clear(); err != nil { log.Fatal(err) } defer storage.Client.Close() // 創建一個新的請求隊列 q, _ := queue.New(2, storage) c.OnResponse(func(r *colly.Response) { log.Println("Cookies:", c.Cookies(r.Request.URL.String())) }) // 把URL添加到隊列 for _, u := range urls { q.AddURL(u) } // 消費請求 q.Run(c)}

代碼使用了 redisstorage 創建了一個 Redis 后端的存儲,然后創建了一個具有2個消費者線程的隊列。把所有初始的 URL 添加到隊列中,并開始消費,消費者從隊列中取出 URL 開始執行爬取工作。

爬蟲框架

總結

Colly 作為一個爬蟲框架,接口設計簡潔優雅,功能豐富,可以在多種數據收集場景中發揮作用,且無論是開發效率還是運行效率都非常高,實用價值高。

Colly 開源貢獻眾多,社區活躍,目前已被許多開發者在實踐中使用。Colly 文檔完善,例子豐富,包括了爬取 Coursera、Instagram、Reddit 等網站的示例,方便學習者參考使用。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的框架 go_Colly - 优雅极速的Go语言爬虫框架的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 精品一区三区 | 爱久久| 杨幂一区二区三区免费看视频 | 插久久| 在线日韩一区二区 | 欧美理论视频 | 中文字幕在线播 | 99热成人| 亚洲成人一二区 | 日韩av毛片在线观看 | 91看篇 | missav|免费高清av在线看 | 正在播放经典国语对白 | 天堂中文在线网 | 五月婷婷综 | 成人一区二区三区在线 | 韩国av电影在线观看 | aa成人| 国产精一区 | 亚洲熟女乱色综合亚洲小说 | 日韩欧美网站 | 黑鬼大战白妞高潮喷白浆 | 色噜噜一区二区三区 | 日韩涩| xxx毛片| 色老板最新地址 | 欧美一级爱爱 | 色狠狠av老熟女 | 日韩欧美国产成人精品免费 | 午夜av大片 | 日韩午夜剧场 | 偷偷久久 | 日韩欧美大片在线观看 | 国产麻豆免费观看 | 91麻豆国产在线观看 | 国产日韩欧美在线观看 | 香蕉久久综合 | www.日韩视频 | 黄色骚视频 | 日本成人黄色片 | 亚洲第九十七页 | 中文字幕视频网站 | 永久在线 | 一区二区日韩国产 | 黄页网址大全免费观看 | 亚洲综合福利 | 少妇精品视频 | 搡国产老太xxx网站 高h喷汁呻吟3p | 全球av在线 | 韩日一区二区 | 国产喷水福利在线视频 | 日韩av在线免费 | 一区二区三区四区在线 | 毛片内射 | 丁香婷婷久久 | 色狠狠一区二区三区香蕉 | 精品99999| 99国产在线播放 | 日韩欧美久久精品 | 日韩中文欧美 | 国产精品腿扒开做爽爽爽挤奶网站 | 日本特黄特色aaa大片免费 | 天天爱夜夜爱 | 国产精品久久久久久久久久久久 | 久久综合久色欧美综合狠狠 | 日日爱99 | 91视频免费 | 国产高清99 | 免费无码毛片一区二三区 | 黄色片视频在线观看 | 欧美精品一区二区蜜臀亚洲 | 久久一区二区精品 | 视频精品久久 | 日皮视频免费观看 | 久久成人综合 | 变态另类ts人妖一区二区 | 日韩国产精品久久 | 成人三区 | 豆花视频在线播放 | 久久国产主播 | 毛片网站在线免费观看 | 亚州综合视频 | 香蕉中文网 | 少妇高潮a一级 | 国内精品久久久久久久久久 | 午夜影院福利 | 深夜精品视频 | 四虎影院国产精品 | 欧美精品 在线观看 | 亚洲综合第一页 | 亚洲区视频在线观看 | 人人爱超碰| 91丝袜一区在线观看 | 99视频国产精品免费观看a | 成人在线网站 | 亚洲二三区 | 亚洲理论片在线观看 | 僵尸叔叔在线观看国语高清免费观看 | 美女脱了裤子让男人桶 |