• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    基于scrapy爬蟲框架的數(shù)據(jù)采集系統(tǒng)及方法技術(shù)方案

    技術(shù)編號:24331355 閱讀:39 留言:0更新日期:2020-05-29 19:43
    本發(fā)明專利技術(shù)公開了一種基于scrapy爬蟲框架的數(shù)據(jù)采集系統(tǒng)及方法,包括:爬蟲隊列模塊和爬蟲執(zhí)行模塊;爬蟲隊列模塊包括爬蟲種子隊列、爬蟲種子處理單元和爬蟲任務(wù)隊列;爬蟲種子隊列用于存儲爬蟲任務(wù);爬蟲種子處理單元用于對爬蟲種子隊列中的爬蟲任務(wù)進行去重篩選處理,并將去重篩選后的爬蟲任務(wù)存儲入爬蟲任務(wù)隊列;爬蟲執(zhí)行模塊包括網(wǎng)頁下載單元和URL挖掘單元;網(wǎng)頁下載單元用于從爬蟲任務(wù)隊列中讀取當(dāng)前需要執(zhí)行的爬蟲任務(wù),基于讀取到的爬蟲任務(wù)下載網(wǎng)頁;URL挖掘單元用于在下載到的網(wǎng)頁中提取到新的URL鏈接作為新的爬蟲任務(wù)存入爬蟲種子隊列;實現(xiàn)對特定領(lǐng)域網(wǎng)站域名的深度挖掘,提升了系統(tǒng)的爬取廣度。

    Data acquisition system and method based on the framework of crawler

    【技術(shù)實現(xiàn)步驟摘要】
    基于scrapy爬蟲框架的數(shù)據(jù)采集系統(tǒng)及方法
    本專利技術(shù)屬于數(shù)據(jù)采集
    ,具體地說,是涉及一種基于scrapy爬蟲框架的數(shù)據(jù)采集系統(tǒng)及方法。
    技術(shù)介紹
    信息網(wǎng)絡(luò)技術(shù)的快速發(fā)展,帶來了網(wǎng)絡(luò)信息量的指數(shù)性增長。在網(wǎng)絡(luò)信息資源充足的條件下,為了快速、針對性獲取相關(guān)網(wǎng)絡(luò)信息,促使了搜索引擎的誕生。搜索引擎,是指運用特定的計算機程序按照一定的策略自動從因特網(wǎng)上搜集信息,對信息進行組織和處理以后,提供給用戶檢索服務(wù)。搜索引擎從因特網(wǎng)上搜集信息的過程,依賴于網(wǎng)絡(luò)蜘蛛對相關(guān)網(wǎng)站信息的爬取。網(wǎng)絡(luò)蜘蛛是一種自動瀏覽網(wǎng)絡(luò),分析網(wǎng)頁內(nèi)容的程序,是搜索引擎的重要組成部分。Scrapy是目前最主流的爬蟲框架,它是基于twisted(用Python實現(xiàn)的基于事件驅(qū)動的網(wǎng)絡(luò)引擎框架)異步網(wǎng)絡(luò)庫實現(xiàn)的,在爬取速度上相對其他爬蟲是高效的,且具有可定制性。由于網(wǎng)絡(luò)爬蟲對I/O的要求較高,Scrapy將待爬取的URLs直接存儲在內(nèi)存中而非硬盤中,這樣一來,在爬取網(wǎng)頁過程中,當(dāng)爬取的網(wǎng)頁數(shù)量達到數(shù)萬時,需要存儲的URLs數(shù)量可能會超過百萬甚至千萬,再加上Python(一種解釋型、面向?qū)ο蟆討B(tài)數(shù)據(jù)類型的高級程序設(shè)計語言)本身是腳本語言,其對象占用內(nèi)存往往比C/C++等編譯型語言要大得多,而且Python垃圾收集器的釋放內(nèi)存算法并不會在對象不再被引用時立即釋放內(nèi)存。因此,很可能會導(dǎo)致單機內(nèi)存枯竭,造成爬取速度變慢。
    技術(shù)實現(xiàn)思路
    本專利技術(shù)的目的在于提供一種基于scrapy爬蟲框架的數(shù)據(jù)采集系統(tǒng)及方法,克服現(xiàn)有爬蟲框架數(shù)據(jù)采集方式的不足,提升了爬取效率、爬取穩(wěn)定性和爬取廣度。本專利技術(shù)采用以下技術(shù)方案予以實現(xiàn):提出一種基于scrapy爬蟲框架的數(shù)據(jù)采集系統(tǒng),包括:爬蟲隊列模塊,包括爬蟲種子隊列、爬蟲種子處理單元和爬蟲任務(wù)隊列;所述爬蟲種子隊列,用于存儲爬蟲任務(wù);所述爬蟲種子處理單元,用于對爬蟲種子隊列中的爬蟲任務(wù)進行去重篩選處理,并將去重篩選后的爬蟲任務(wù)存儲入爬蟲任務(wù)隊列;爬蟲執(zhí)行模塊,包括網(wǎng)頁下載單元和URL挖掘單元;所述網(wǎng)頁下載單元,用于從爬蟲任務(wù)隊列中讀取當(dāng)前需要執(zhí)行的爬蟲任務(wù),基于讀取到的爬蟲任務(wù)下載網(wǎng)頁;所述URL挖掘單元,用于在下載到的網(wǎng)頁中提取到新的URL鏈接作為新的爬蟲任務(wù)存入所述爬蟲種子隊列。進一步的,所述系統(tǒng)還包括:任務(wù)調(diào)度模塊,包括爬蟲進程隊列和進程管理器;其中,所述進程管理器,用于根據(jù)控制信息和爬蟲任務(wù)隊列信息創(chuàng)建爬蟲進程,將創(chuàng)建的爬蟲進程加入所述爬蟲進程隊列并進行管理,以及控制所述網(wǎng)頁下載單元下載網(wǎng)頁;所述爬蟲進程隊列,用于存儲當(dāng)前正在執(zhí)行、暫時掛起和已經(jīng)結(jié)束的爬蟲進程。進一步的,所述系統(tǒng)還包括:Kafka消息庫,用于存儲所述爬蟲種子隊列。進一步的,所述系統(tǒng)還包括:Redis數(shù)據(jù)庫,用于存儲所述爬蟲任務(wù)隊列。進一步的,所述系統(tǒng)還包括:MongoDB數(shù)據(jù)庫,用于存儲所述網(wǎng)頁下載單元下載的網(wǎng)頁內(nèi)容。進一步的,所述爬蟲種子處理單元包括:去重插件,用于將所述URL挖掘單元得到的新的爬蟲種子與所述爬蟲任務(wù)隊列中的爬蟲隊列進行判重處理,得到未被爬取過的爬蟲種子;篩選插件,用于根據(jù)篩選標準對爬蟲種子進行匹配篩選。進一步的,所述網(wǎng)頁下載單元還用于:重寫scrapy的下載組件,實現(xiàn)通過代理vpn下載網(wǎng)頁;所述URL挖掘單元,還用于重寫scrapy的spider組件,實現(xiàn)提取網(wǎng)站網(wǎng)頁的網(wǎng)址鏈接;將提取到的網(wǎng)址鏈接存入所述爬蟲種子隊列。進一步的,所述系統(tǒng)還包括:爬蟲管理器,基于HTTP并使用TwistedApplication框架實現(xiàn),部署在所述爬蟲隊列模塊、所述爬蟲執(zhí)行模塊和所述任務(wù)調(diào)度模塊,使得所述爬蟲隊列模塊、所述爬蟲執(zhí)行模塊和所述任務(wù)調(diào)度模塊之間通過調(diào)用Twisted框架內(nèi)部的TimerService接口通信。提出一種基于scrapy爬蟲框架的數(shù)據(jù)采集方法,包括:步驟1)讀取爬蟲種子隊列中的爬蟲任務(wù);步驟2)將爬蟲種子隊列中的爬蟲任務(wù)進行去重篩選,并將去重篩選后的爬蟲任務(wù)存儲入爬蟲任務(wù)隊列;步驟3)從爬蟲任務(wù)隊列中讀取當(dāng)前需要執(zhí)行的爬蟲任務(wù),基于爬蟲任務(wù)下載網(wǎng)頁;步驟4)從下載得到的網(wǎng)頁中提取到新的URL連接作為新的爬蟲任務(wù)存入所述爬蟲種子隊列;步驟5)重復(fù)步驟1)至步驟4),直到所述爬蟲種子隊列和所述爬蟲任務(wù)隊列為空。進一步的,在步驟1)之前,所述方法還包括:將所需爬取的網(wǎng)站域名、可能存在所需爬取網(wǎng)址URL的網(wǎng)站域名存入所述爬蟲種子隊列中。與現(xiàn)有技術(shù)相比,本專利技術(shù)的優(yōu)點和積極效果是:本專利技術(shù)提出的基于scrapy爬蟲框架的數(shù)據(jù)采集系統(tǒng)及方法中,爬蟲執(zhí)行模塊在下載的網(wǎng)頁中提取新的URL鏈接作為新的爬蟲任務(wù)存入創(chuàng)建的爬蟲種子隊列中,對爬蟲種子隊列中的爬蟲任務(wù)進行去重篩選后存入爬蟲任務(wù)隊列,爬蟲執(zhí)行模塊再從爬蟲任務(wù)隊列中讀取爬蟲任務(wù),繼續(xù)進行下載、去重和篩選,如此重復(fù)直至爬蟲蟲子隊列和爬蟲任務(wù)隊列為空,實現(xiàn)對特定領(lǐng)域網(wǎng)站域名的深度挖掘,達到大量獲取、下載以及存儲相關(guān)網(wǎng)頁內(nèi)容的目的,適用于規(guī)模大、相關(guān)度高的網(wǎng)頁內(nèi)容資源挖掘任務(wù),提升了系統(tǒng)的爬取廣度;同時,對爬蟲種子隊列中的爬蟲任務(wù)進行去重和篩選,降低了處理操作的復(fù)雜度和所需時間,提升了系統(tǒng)的爬取效率。進一步的,本系統(tǒng)將爬蟲種子隊列存儲于kafka消息庫,由于kafka具有可持久性,當(dāng)中心節(jié)點宕機的情況下,也不會丟失帶爬取的任務(wù),保證了系統(tǒng)的可靠性,提升了系統(tǒng)的爬取穩(wěn)定性。進一步的,本系統(tǒng)將爬蟲任務(wù)隊列存儲于Redis內(nèi)存型數(shù)據(jù)庫中,替代了scrapy框架原有在本地內(nèi)存上創(chuàng)建任務(wù)隊列存儲,實現(xiàn)多個不同機器上的scrapy都可以從一個數(shù)據(jù)庫獲取任務(wù)進行分布式爬取,進一步提升了系統(tǒng)的爬取效率。結(jié)合附圖閱讀本專利技術(shù)實施方式的詳細描述后,本專利技術(shù)的其他特點和優(yōu)點將變得更加清楚。附圖說明圖1為本專利技術(shù)提出的基于scrapy爬蟲框架的數(shù)據(jù)采集系統(tǒng)的架構(gòu)圖;圖2為本專利技術(shù)提出的基于scrapy爬蟲框架的數(shù)據(jù)采集方法的流程圖。具體實施方式下面結(jié)合附圖對本專利技術(shù)的具體實施方式作進一步詳細的說明。本專利技術(shù)提出的基于scrapy爬蟲框架的數(shù)據(jù)采集系統(tǒng),如圖1所示,包括爬蟲隊列模塊1、爬蟲執(zhí)行模塊2和任務(wù)調(diào)度模塊3;其中,爬蟲隊列模塊1包括爬蟲種子隊列11、爬蟲種子處理單元12和爬蟲任務(wù)隊列13;爬蟲執(zhí)行模塊2包括網(wǎng)頁下載單元21和URL挖掘單元22;任務(wù)調(diào)度模塊3包括爬蟲進程隊列31和進程管理器32。爬蟲種子隊列11用于存儲爬蟲任務(wù),包括但不限定于用戶發(fā)出的爬蟲任務(wù)以及爬蟲執(zhí)行模塊2提交的新的爬蟲任務(wù);爬蟲種子處理單元12用于對爬蟲種子隊列中的爬蟲任務(wù)進行去重篩選處理,并將去重篩選后的爬蟲任務(wù)存儲入爬蟲任務(wù)隊列13中;爬蟲任務(wù)隊列13中的爬蟲任務(wù)需要提交給進程管理器32。網(wǎng)頁下載單元21用于從爬蟲任務(wù)隊列中讀取當(dāng)前需要執(zhí)行的爬蟲任務(wù),基于讀取到的爬蟲任務(wù)下載網(wǎng)頁;URL挖掘單元22用于在下載到的網(wǎng)頁中提取到新的URL鏈接作為新的爬蟲任務(wù)存入爬蟲種子隊本文檔來自技高網(wǎng)...

    【技術(shù)保護點】
    1.一種基于scrapy爬蟲框架的數(shù)據(jù)采集系統(tǒng),其特征在于,包括:/n爬蟲隊列模塊,包括爬蟲種子隊列、爬蟲種子處理單元和爬蟲任務(wù)隊列;所述爬蟲種子隊列,用于存儲爬蟲任務(wù);所述爬蟲種子處理單元,用于對爬蟲種子隊列中的爬蟲任務(wù)進行去重篩選處理,并將去重篩選后的爬蟲任務(wù)存儲入爬蟲任務(wù)隊列;/n爬蟲執(zhí)行模塊,包括網(wǎng)頁下載單元和URL挖掘單元;所述網(wǎng)頁下載單元,用于從爬蟲任務(wù)隊列中讀取當(dāng)前需要執(zhí)行的爬蟲任務(wù),基于讀取到的爬蟲任務(wù)下載網(wǎng)頁;所述URL挖掘單元,用于在下載到的網(wǎng)頁中提取到新的URL鏈接作為新的爬蟲任務(wù)存入所述爬蟲種子隊列。/n

    【技術(shù)特征摘要】
    1.一種基于scrapy爬蟲框架的數(shù)據(jù)采集系統(tǒng),其特征在于,包括:
    爬蟲隊列模塊,包括爬蟲種子隊列、爬蟲種子處理單元和爬蟲任務(wù)隊列;所述爬蟲種子隊列,用于存儲爬蟲任務(wù);所述爬蟲種子處理單元,用于對爬蟲種子隊列中的爬蟲任務(wù)進行去重篩選處理,并將去重篩選后的爬蟲任務(wù)存儲入爬蟲任務(wù)隊列;
    爬蟲執(zhí)行模塊,包括網(wǎng)頁下載單元和URL挖掘單元;所述網(wǎng)頁下載單元,用于從爬蟲任務(wù)隊列中讀取當(dāng)前需要執(zhí)行的爬蟲任務(wù),基于讀取到的爬蟲任務(wù)下載網(wǎng)頁;所述URL挖掘單元,用于在下載到的網(wǎng)頁中提取到新的URL鏈接作為新的爬蟲任務(wù)存入所述爬蟲種子隊列。


    2.根據(jù)權(quán)利要求1所述的基于scrapy爬蟲框架的數(shù)據(jù)采集系統(tǒng),其特征在于,所述系統(tǒng)還包括:
    任務(wù)調(diào)度模塊,包括爬蟲進程隊列和進程管理器;
    其中,所述進程管理器,用于根據(jù)控制信息和爬蟲任務(wù)隊列信息創(chuàng)建爬蟲進程,將創(chuàng)建的爬蟲進程加入所述爬蟲進程隊列并進行管理,以及控制所述網(wǎng)頁下載單元下載網(wǎng)頁;所述爬蟲進程隊列,用于存儲當(dāng)前正在執(zhí)行、暫時掛起和已經(jīng)結(jié)束的爬蟲進程。


    3.根據(jù)權(quán)利要求1所述的基于scrapy爬蟲框架的數(shù)據(jù)采集系統(tǒng),其特征在于,所述系統(tǒng)還包括:
    Kafka消息庫,用于存儲所述爬蟲種子隊列。


    4.根據(jù)權(quán)利要求1所述的基于scrapy爬蟲框架的數(shù)據(jù)采集系統(tǒng),其特征在于,所述系統(tǒng)還包括:
    Redis數(shù)據(jù)庫,用于存儲所述爬蟲任務(wù)隊列。


    5.根據(jù)權(quán)利要求1所述的基于scrapy爬蟲框架的數(shù)據(jù)采集系統(tǒng),其特征在于,所述系統(tǒng)還包括:
    MongoDB數(shù)據(jù)庫,用于存儲所述網(wǎng)頁下載單元下載的網(wǎng)頁內(nèi)容。


    6.根據(jù)權(quán)利要求1所述的基于scrapy爬蟲框架的數(shù)據(jù)采集系統(tǒng),其特征在于,所述爬蟲種子處理單元包括:
    去重...

    【專利技術(shù)屬性】
    技術(shù)研發(fā)人員:魏志強賈東寧聶為之劉安安蘇育挺
    申請(專利權(quán))人:青島海洋科學(xué)與技術(shù)國家實驗室發(fā)展中心
    類型:發(fā)明
    國別省市:山東;37

    網(wǎng)友詢問留言 已有0條評論
    • 還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 国产成人无码精品久久久性色| 亚洲久热无码av中文字幕| 久久伊人中文无码| 亚洲AV无码一区二区三区鸳鸯影院| 久久国产亚洲精品无码| 亚洲国产精品无码久久久| 久久久久亚洲av无码专区喷水| 无码人妻精品中文字幕免费东京热| 伊人久久精品无码二区麻豆| 亚洲精品无码永久中文字幕| 亚洲日韩精品无码专区| 粉嫩大学生无套内射无码卡视频 | 无码av中文一区二区三区桃花岛 | 亚洲av无码无线在线观看| 在线精品无码字幕无码AV| 东京热人妻无码一区二区av| 一本无码人妻在中文字幕免费| 无码人妻H动漫中文字幕 | 亚洲国产精品无码久久九九 | 国产爆乳无码视频在线观看 | 亚洲中文无码a∨在线观看| 国产品无码一区二区三区在线蜜桃| 少妇人妻无码精品视频| 精品久久久久久无码中文野结衣| 亚洲国产精品无码观看久久| 亚洲无码高清在线观看| 18禁无遮拦无码国产在线播放| 亚洲毛片av日韩av无码| 久久AV无码精品人妻糸列| 午夜无码中文字幕在线播放 | 无码熟妇人妻AV影音先锋| 极品粉嫩嫩模大尺度无码视频 | 成人无码A区在线观看视频| 久久久久久人妻无码| 亚洲精品无码专区2| 国产成人无码aa精品一区| 无码人妻精品中文字幕| 成人无码AV一区二区| 蕾丝av无码专区在线观看| 亚洲爆乳无码专区www| 亚洲av无码兔费综合|