日韩性视频-久久久蜜桃-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语言爬虫框架的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 欧洲美一区二区三区亚洲 | 成人在线一区二区三区 | 国产乱码精品一区二区三 | 亚洲第一区视频 | 亚洲精品久久久蜜桃网尤妮丝 | 日本中文字幕久久 | 性――交――性――乱睡觉 | 97热视频 | 成年人免费黄色片 | 少妇搡bbbb搡bbbb| 中文字幕在线视频免费 | 亚洲第一成人网站 | 日韩欧美在线观看一区二区三区 | 老女人人体欣赏a√s | 91极品身材尤物theporn | 国产一级淫片免费 | 夜夜操天天射 | 日本黄色片网址 | 欧美一级二级三级视频 | 国产嫩草在线观看 | 1024欧美| 久久久久久999 | 麻豆一区二区99久久久久 | 岛国大片在线 | 好吊妞视频在线 | av黄色片| 欧美激情一区二区三区四区 | 欧美大片aaa | 国产亚洲色婷婷久久99精品 | 色爱视频 | 天天影视色 | 一区二区天堂 | 一级特黄a | 你懂的网址在线观看 | 久久亚洲精华国产精华液 | 奇米成人影视 | 成人污在线 | 超碰按摩| 老女人毛片50一60岁 | 亚洲国产精品久久久 | 国产成人一区二区 | 快播av在线| 欧美顶级黄色大片免费 | 青娱乐在线视频免费观看 | 色999日韩| 日韩黄色a级片 | ass日本 | 久久性视频 | 国产成人激情 | 久久久精品小视频 | 欧美激情18 | 17c国产精品 | 日韩欧美不卡在线 | 澳门久久久 | 日本福利在线观看 | 好看的黄色网址 | 性猛交富婆╳xxx乱大交天津 | 欧美手机在线 | 午夜一区二区三区免费观看 | 成人深夜视频 | 精品中文字幕在线观看 | 秘密爱大尺度做爰呻吟 | 665566综合网| 涩涩一区 | 色就是色综合 | 免费无遮挡无码永久在线观看视频 | 伊人久久久久久久久久久久 | 国产视频福利在线 | 欧美少妇一区 | 欧美深夜福利 | 欧日韩精品 | 久久久性| 四虎在线免费观看视频 | 西西人体44www大胆无码 | 99精品久久久久久久 | 久久伊人中文字幕 | 制服丝袜国产在线 | 99热在线观看精品 | 日本夜夜操| 中文字幕日韩精品无码内射 | 住在隔壁的她动漫免费观看全集下载 | youjizz韩国| 在线观看自拍 | 国产日韩视频 | 国产精品久久精品 | 中文字幕人妻一区 | 欧美在线观看视频一区二区 | 久久中文网 | 影音先锋久久久久av综合网成人 | 日本熟妇一区二区三区四区 | 伊人精品久久 | 999福利视频 | 国产伦乱视频 | 日日干夜夜爱 | 中文字幕一区二区在线观看 | 国产在线播放91 | 三级色网站 | 国产日韩欧美不卡 | 中文字幕一区二区三 |