go語言學(xué)習(xí)爬蟲框架總結(jié)

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

成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比和田網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式和田網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋和田地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。

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

當(dāng)前題目:go語言學(xué)習(xí)爬蟲框架總結(jié)
網(wǎng)站地址:http://muchs.cn/article40/gheoho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、定制網(wǎng)站虛擬主機(jī)、品牌網(wǎng)站設(shè)計(jì)關(guān)鍵詞優(yōu)化、網(wǎng)站收錄

廣告

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

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司