go語言學習爬蟲框架總結-創(chuàng)新互聯(lián)

??最近主攻go的學習,在學完了基礎語法,看完了無聞翻譯的《The way to go》和ccmouse大神的慕課網(wǎng)課程后,感覺基礎差不多了,繼續(xù)深入挖掘ccmouse大神的爬蟲項目,收獲頗豐,感覺還是有一定的難度的,會繼續(xù)啃下去,學習之余感覺自己實在是井底之蛙,無數(shù)光陰盡數(shù)浪費,無所建樹,思維停留在最原始的層面,無法向前邁進;慶幸現(xiàn)在有所覺悟,人生匆匆?guī)资d,時間是最寶貴的,不論哪個領域,選擇一個自己認定的,低下頭向前沖刺,豐富自己的頭腦,提升自己的認知。好像扯得有點遠了,下面是項目的總結。

主要從事網(wǎng)頁設計、PC網(wǎng)站建設(電腦版網(wǎng)站建設)、wap網(wǎng)站建設(手機版網(wǎng)站建設)、成都響應式網(wǎng)站建設公司、程序開發(fā)、微網(wǎng)站、小程序開發(fā)等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們在互聯(lián)網(wǎng)網(wǎng)站建設行業(yè)積累了豐富的成都網(wǎng)站設計、成都做網(wǎng)站、網(wǎng)絡營銷經(jīng)驗,集策劃、開發(fā)、設計、營銷、管理等多方位專業(yè)化運作于一體,具備承接不同規(guī)模與類型的建設項目的能力。
  1. 項目有一個main.go的入口文件,然后是各個子目錄功能文件夾;如圖:go語言學習爬蟲框架總結 engine是總的控制文件,把請求和正則解析push到總的slice []request中,fetcher主要是通過http庫去獲取頁面body信息,model是要保存的人的信息struct
  2. 說完了目錄結構,接下來介紹下流程:go語言學習爬蟲框架總結
  3. 整個單機版爬蟲項目比較簡單,但對我來說收貨還是比較大的,其中涉及到一些技術細節(jié),如接口定義,結構方法的使用,
  4. 后面還有并發(fā)版本和分布式版本,就比較復雜了,并發(fā)版是充分使用go的goroutine和chan,要在大的方向上理清楚思路,抽象出一些公用的方法和結構,重要的正則解析要做test工作,然后在此指引下一步步構建,不可盲目前進。首先并發(fā)版需要兩個chan,一個in :=chan Request和另一個out:=chan ParseResult,并發(fā)版啟動WorkerCount個goroutine去并發(fā)獲取in chan url內容并解析出新url推送到out chan,同時并發(fā)版有一個scheduler調度器, 將初始的爬取Request(包括url和對應的parser,因為每個網(wǎng)址的parser規(guī)則不同所以要成組傳輸)放進scheduler里的workerChan即前面定義的in chan, 他倆是一個chan, 程序開始并發(fā)執(zhí)行,由于執(zhí)行的比較快會被爬取網(wǎng)站斷掉, 可以用time.Tike(time)來限制速度,另爬取時可能要設置相應的header頭,否則會被屏蔽掉.
  5. 由于并發(fā)版多個worker都在爭搶Request去執(zhí)行,控制力度比較小,只適用于單機,不適合多機器分布式部署,故演化出第三個版本:隊列實現(xiàn).隊列執(zhí)行效率和并發(fā)版執(zhí)行效率差不多. scheduler調度器中有rqquestChan chan Request 和 workerChan chan chan Request(注意這里是兩個chan), 在run方法中定義一個out chan ParseResult,和并發(fā)版相比而言,隊列版多了workerChan 這個chan,主要用來實現(xiàn)隊列的調度。試著描述下整個過程不一定清晰:go語言學習爬蟲框架總結
  6. 下面附上幾張ccmouse大神的講課ppt供大家理解,如有不清楚的歡迎下方留言討論。go語言學習爬蟲框架總結go語言學習爬蟲框架總結go語言學習爬蟲框架總結

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

分享標題:go語言學習爬蟲框架總結-創(chuàng)新互聯(lián)
當前地址:http://bm7419.com/article28/goscp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、營銷型網(wǎng)站建設、搜索引擎優(yōu)化、全網(wǎng)營銷推廣App開發(fā)、面包屑導航

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化