基於golang的網路爬蟲框架

2021-08-16 22:31:52 字數 2091 閱讀 3321

這是乙個用go語言實現的網路爬蟲框架,本框架的核心在於可定製和可擴充套件,使用者可以根據自己的需要定製各個模組,同時,也給出了乙個實現demo供參考。go語言的初學者也可以通過這個專案熟悉go語言的各種特性,尤其是併發程式設計。

(1)排程器主體

主要用於啟動和停止整個系統,並且從中獲取一些系統執行的狀態。

type scheduler inte***ce
(2)系統資訊摘要

通過此介面獲取系統的整體情況

type schedsummary inte***ce
type requestcache inte***ce
(4)監控器

監控整個系統的執行,在所有執行緒都結束之後及時返回訊號,以便於排程器主體終止整個系統。

// scheduler代表作為監控目標的排程器。

// intervalns代表檢查間隔時間,單位:納秒。

// maxidlecount代表最大空閒計數。

// autostop被用來指示該方法是否在排程器空閒一段時間(即持續空閒時間,由intervalns * maxidlecount得出)之後自行停止排程器。

// detailsummary被用來表示是否需要詳細的摘要資訊。

// record代表日誌記錄函式。

func monitoring(scheduler sched.scheduler, intervalns time.duration, maxidlecount uint, autostop bool, detailsummary bool, record record)

uint64

type

idgenerator inte***ce

type

entity inte***ce

type

pool inte***ce

(3)停止訊號

由於本框架是多執行緒的,所以需要乙個訊號來關閉整個系統。

type stopsign inte***ce
(4)通道管理

由於本系統是多執行緒的,所以將通道管理放在一起方便管理,分別管理請求通道、響應通道、條目處理通道、錯誤通道。

type channelmanager inte***ce
type

page********** inte***ce

type

analyzer inte***ce

分別處理每乙個條目,並且通過管道傳送錯誤資訊。

type itempipeline inte***ce
type data inte***ce 

// 請求。

type request struct

// 響應。

type response struct

各界面的具體實現見我的github:

主要需要實現響應解析函式以及條目處理器函式,其中條目處理函式可以是一系列處理方式,具體見我的github:/blob/master/demo/demo.go

《go語言程式設計實戰》

網路爬蟲框架 Scrapy

網路爬蟲框架 scrapy 簡介 開源的python爬蟲框架,用於抓取web站點並從頁面中提取結構化的資料 用途廣泛,可用於資料探勘 監測和自動化測試 scrapy優點 快速強大 量簡潔便可完成爬取 易擴充套件 可新增新的功能模組 scrapy高階特性 內建資料抽取器css xpath re 互動式...

golang 網路框架之 grpc

grpc 是 google 開源的一款網路框架,具有極好的效能,可能是目前效能最好的網路框架,支援流式 rpc,可以很方便地構建訊息訂閱發布系統,支援幾乎所有主流的語言,使用上面也很簡單,公司很多服務基於 grpc 框架構建,執行非常穩定 開始之前首先你要知道網路框架為你做了哪些事情 網路協議序列化...

基於Scrapy爬蟲框架的執行原理

scrapy是乙個非常強大的第三方庫,也是乙個提高爬蟲效率的框架,入門較難。框架內部包含模組可以描述為 5 2 模組,包含 spiders,item piplines engine scheduler 而engine和spiders,之間包含了兩個中間鍵模組,因此叫 5 2 模組。從spider經過...