亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Scrapy的水利數(shù)據(jù)爬蟲設(shè)計與實現(xiàn)

        2020-07-09 21:53:20游攀利楊琳喻淼
        水利水電快報 2020年5期
        關(guān)鍵詞:網(wǎng)絡(luò)爬蟲數(shù)據(jù)采集

        游攀利 楊琳 喻淼

        摘要:為解決目前各級水利部門數(shù)據(jù)共享能力弱、數(shù)據(jù)格式不統(tǒng)一的問題,建立了一種水利數(shù)據(jù)整合方法。針對互聯(lián)網(wǎng)公開的水利數(shù)據(jù)特點,結(jié)合水利行業(yè)標(biāo)準(zhǔn)規(guī)范,介紹了基于Scrapy框架設(shè)計和開發(fā)的水利數(shù)據(jù)爬蟲,并規(guī)范化存儲數(shù)據(jù)。在總結(jié)各種水利數(shù)據(jù)的獲取和解析原理及方法基礎(chǔ)上,提出了使用Scra-pyd部署爬蟲和SpiderKeeper管理爬蟲的方法,并成功應(yīng)用于長江大數(shù)據(jù)中心的建設(shè),為水雨情預(yù)警、防汛抗旱、應(yīng)急管理提供了重要支持。

        關(guān)鍵詞:水利數(shù)據(jù);網(wǎng)絡(luò)爬蟲;Scrapy;數(shù)據(jù)采集

        中圖法分類號:TP391

        文獻(xiàn)標(biāo)志碼:A

        DOI:10. 15974/j .cnki.slsdkb.2020.05.014

        水利信息化經(jīng)過多年的發(fā)展,全國各水利廳局及流域機構(gòu)積累了大量的水利數(shù)據(jù),包括水雨情數(shù)據(jù)、水質(zhì)數(shù)據(jù)、水澇災(zāi)害數(shù)據(jù)、遙感數(shù)據(jù)、防汛抗旱知識和應(yīng)急管理知識等,這些數(shù)據(jù)可為防汛抗旱決策支持、水利工程建設(shè)、水文水資源研究等提供重要支持[1]。然而,水利數(shù)據(jù)分散在各水利機構(gòu)內(nèi),結(jié)構(gòu)復(fù)雜、種類繁多,即便是同一種類的業(yè)務(wù)數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)也有所差異,阻礙了水利數(shù)據(jù)的開發(fā)、利用與研究。因此,本文從各水利政務(wù)網(wǎng)站的公開數(shù)據(jù)人手,結(jié)合水利部發(fā)布的數(shù)據(jù)庫規(guī)范設(shè)計數(shù)據(jù)庫表,以水雨情數(shù)據(jù)為例,基于爬蟲框架Scrapy設(shè)計和開發(fā)水利爬蟲,著重介紹了各種水雨情網(wǎng)頁的獲取和解析過程,包括Scrapy Selector CSS選擇器解析HTML結(jié)構(gòu)數(shù)據(jù)、正則表達(dá)式解析JavaScript數(shù)據(jù)、獲取和解析Ajax數(shù)據(jù)、Selenium結(jié)合瀏覽器驅(qū)動解析網(wǎng)頁加密數(shù)據(jù)等;并對爬取的數(shù)據(jù)進(jìn)行規(guī)范化存儲,最后使用SpiderKeeper對分布于不同服務(wù)器的爬蟲進(jìn)行統(tǒng)一管理。

        1 網(wǎng)絡(luò)爬蟲

        網(wǎng)絡(luò)爬蟲( web crawler),又稱作網(wǎng)絡(luò)機器人(web robot)或網(wǎng)絡(luò)蜘蛛(web spider),是以一定的規(guī)則自動抓取互聯(lián)網(wǎng)資源的計算機應(yīng)用程序[2]。網(wǎng)絡(luò)爬蟲通常由調(diào)度器( scheduler)、下載器(download-er)、解析器(parser)、待爬行隊列(URL queue)4個部分組成,如圖1所示[3-4]。調(diào)度器首先將設(shè)定的初始URL傳遞給下載器,下載器從互聯(lián)網(wǎng)下載信息并傳給解析器,解析器根據(jù)既定規(guī)則提取信息和待爬取的URL,提取的信息經(jīng)處理后存人數(shù)據(jù)庫或文件,URL經(jīng)去重后傳輸給待爬行隊列.等待調(diào)度器調(diào)用,循環(huán)往復(fù)[5-7]。

        網(wǎng)絡(luò)爬蟲分為通用( General Purpose)網(wǎng)絡(luò)爬蟲和聚焦(Focused)網(wǎng)絡(luò)爬蟲[8]。通用網(wǎng)絡(luò)爬蟲又稱作全網(wǎng)爬蟲,爬取整個互聯(lián)網(wǎng)資源以供搜索引擎建立索引;聚焦網(wǎng)絡(luò)爬蟲又稱作主題網(wǎng)絡(luò)爬蟲,爬取用戶需要的特定主題網(wǎng)頁(經(jīng)相關(guān)網(wǎng)站許可)收集數(shù)據(jù),并在標(biāo)注出處的前提下加以數(shù)據(jù)分析、用于建模及展示。水雨情爬蟲為聚焦網(wǎng)絡(luò)爬蟲,目標(biāo)是爬取各級水利部門網(wǎng)站公開的水雨情信息。

        網(wǎng)絡(luò)爬蟲技術(shù)伴隨著搜索引擎共同發(fā)展,在網(wǎng)絡(luò)爬蟲發(fā)展初期,開發(fā)者需考慮很多底層功能的實現(xiàn),例如,模擬HTTP請求、下載網(wǎng)頁、解析數(shù)據(jù)、隊列管理等。搜索引擎面對的問題日趨復(fù)雜,促使爬蟲程序的編寫難度越來越大。為了提高爬蟲的編寫效率,逐漸出現(xiàn)了網(wǎng)絡(luò)請求庫urllib、urllib2、re-quests等和解析庫Xpath、Beautiful Soup、pyquery等,進(jìn)而抽象出模塊的概念,有了爬蟲框架的雛形。此時,開發(fā)者雖不需考慮這些常用模塊的實現(xiàn),但仍需考慮爬蟲的流程、異常處理及任務(wù)調(diào)度等。對于今后進(jìn)一步出現(xiàn)的pyspider、scrapy等爬蟲框架,開發(fā)者只需考慮爬蟲的業(yè)務(wù)邏輯部分。而且,pyspi-der、scrapy的可配置性更高,異常處理能力更強,故水利數(shù)據(jù)采集系統(tǒng)采用scrapy作為爬蟲框架。

        2 Scrapy框架

        Scrapy是使用Python語言實現(xiàn)的一種爬蟲框架,它將網(wǎng)絡(luò)爬蟲工程化、模塊化,幫助開發(fā)人員方便地構(gòu)建網(wǎng)絡(luò)請求、解析網(wǎng)頁響應(yīng),從而快速實現(xiàn)特定業(yè)務(wù)的爬蟲[8-9]。Scrapy基于Twisted異步網(wǎng)絡(luò)庫處理網(wǎng)絡(luò)通訊,實現(xiàn)了分布式爬取。

        2.1 Scrapy組件

        Scrapy爬蟲框架結(jié)構(gòu)如圖2所示[10],包括以下6個主要組件:

        (1)Scrapy引擎(engine)。負(fù)責(zé)控制數(shù)據(jù)在組件中流動,并在相應(yīng)動作發(fā)生時觸發(fā)事件,是整個框架的核心。

        (2)調(diào)度器。從Scrapy引擎接受請求,并將其加入到隊列中,以便之后請求它們時提供。

        (3)下載器。接受請求,負(fù)責(zé)獲取數(shù)據(jù)并提供給引擎,而后提供給爬蟲。

        (4)爬蟲。用戶編寫的針對特定業(yè)務(wù)的爬蟲程序,定義了初始請求網(wǎng)址、網(wǎng)頁的爬取邏輯和解析規(guī)則,用于發(fā)起初始請求和解析返回的數(shù)據(jù)并提取項目(Item,定義了爬取結(jié)果的數(shù)據(jù)結(jié)構(gòu),可對應(yīng)web開發(fā)中的實體類)和生成新的請求,每個爬蟲負(fù)責(zé)處理某個特定或一些網(wǎng)站。

        (5)項目管道(Item Pipeline)。負(fù)責(zé)處理爬蟲提取出來的項目,典型的處理有數(shù)據(jù)清洗、驗證數(shù)據(jù)完整性、數(shù)據(jù)重復(fù)及數(shù)據(jù)持久化(例如按指定格式保存到文件或存取到數(shù)據(jù)庫中)。

        (6)中間件(middleware)。包括下載器中間件( downloader middleware)和爬蟲中間件(spider mid-dleware)。下載器中間件是在引擎與下載器之間的特定鉤子( specific hook),主要處理引擎發(fā)過來的請求,用戶可編寫程序擴展Scrapy的功能,以自定義的方式協(xié)調(diào)下載器的工作;爬蟲中間件是在引擎與爬蟲之間的特定鉤子,處理爬蟲的輸入響應(yīng)(response)和輸出條目及請求。同下載器中間件一樣,用戶可擴展Scrapy功能,以協(xié)調(diào)爬蟲工作。

        2.2 Scrapy數(shù)據(jù)流

        Scrapy的數(shù)據(jù)流向是由引擎控制的,數(shù)據(jù)流動的過程如下:

        (1)引擎找到處理該網(wǎng)站的爬蟲,向爬蟲請求初始要爬取的URL,根據(jù)URL解析域名。

        (2)引擎從爬蟲中獲取到第一個要爬取的URL,并通過調(diào)度器以請求的形式調(diào)度。

        (3)引擎向調(diào)度器請求下一個要爬取的URL。

        (4)調(diào)度器返回下一個要爬取的URL給引擎,引擎將URL通過下載器中間件轉(zhuǎn)發(fā)給下載器。

        (5)-旦頁面下載完畢,下載器生成該頁面的響應(yīng),并將其通過下載器中間件發(fā)送給引擎。

        (6)引擎從下載器處接收到響應(yīng),并通過爬蟲中間件發(fā)送給爬蟲處理。

        (7)爬蟲處理響應(yīng),解析數(shù)據(jù)并封裝成條目,返回條目及新的請求給引擎。

        (8)引擎將爬蟲返回的條目給項目管道處理,將新的請求加入到調(diào)度器的待爬隊列中。

        (9)重復(fù)步驟(2)~(8),直到調(diào)度器中沒有請求,待爬隊列為空,或者滿足自定義的停止條件,引擎則關(guān)閉該網(wǎng)站,爬行結(jié)束。

        通過多個組件的分工協(xié)作、組件對異步處理的支持,Scrapy充分利用了帶寬,提高了數(shù)據(jù)爬取效率。

        3 水雨情爬蟲設(shè)計

        3.1 網(wǎng)頁獲取

        爬蟲設(shè)計的首要工作即是得到獲取目標(biāo)數(shù)據(jù)的網(wǎng)絡(luò)請求。訪問水雨情網(wǎng)頁,查看網(wǎng)頁的源代碼會發(fā)現(xiàn),其中可能根本不存在水雨情數(shù)據(jù),這是因為現(xiàn)在很多網(wǎng)頁是由JavaScript渲染出來,原始的HTML代碼可能只是一個僅有水雨情表頭的表格。向網(wǎng)站發(fā)送一個HTTP請求,返回的就是網(wǎng)頁源代碼。綜合分析各級水利部門網(wǎng)站公開的水雨情網(wǎng)頁,存在以下幾種情況。

        (1)網(wǎng)頁源代碼中的HTML代碼包含目標(biāo)數(shù)據(jù),該網(wǎng)頁的URL就是獲取目標(biāo)數(shù)據(jù)的URL;

        (2)網(wǎng)頁源代碼中的JavaScript代碼包含目標(biāo)數(shù)據(jù),該網(wǎng)頁的URL就是獲取目標(biāo)數(shù)據(jù)的URL;

        (3)網(wǎng)頁源代碼不包含目標(biāo)數(shù)據(jù),通過Ajax加載數(shù)據(jù)渲染網(wǎng)頁,Ajax請求的URL即是獲取目標(biāo)數(shù)據(jù)的URL;

        (4)網(wǎng)頁源代碼不包含目標(biāo)數(shù)據(jù),通過JavaS-cript算法生成數(shù)據(jù)渲染網(wǎng)頁,該網(wǎng)頁的URL即是獲取目標(biāo)數(shù)據(jù)的URL;

        (5)網(wǎng)頁源代碼不包含目標(biāo)數(shù)據(jù),網(wǎng)頁數(shù)據(jù)被加密,該網(wǎng)頁的URL即是獲取目標(biāo)數(shù)據(jù)的URL;

        (6)網(wǎng)頁源代碼不包含目標(biāo)數(shù)據(jù),而是使用if-rame嵌入另一個HTML網(wǎng)頁展示數(shù)據(jù),這種情況下,為了確認(rèn)獲取目標(biāo)數(shù)據(jù)的URL,需再次分析,以確定是上述(1)~(5)中的哪種情況。

        3.2 數(shù)據(jù)解析

        確定獲取目標(biāo)數(shù)據(jù)的URL之后,使用Scrapy模擬HTTP請求,對返回的響應(yīng)數(shù)據(jù)進(jìn)行解析。根據(jù)響應(yīng)的不同,解析方式也不同。對于3.1節(jié)中的情況(l),需要解析的是HTML結(jié)構(gòu)數(shù)據(jù),使用Scrapy的Selector CSS選擇器進(jìn)行解析;對于情況(2),由于JavaScript數(shù)據(jù)不是結(jié)構(gòu)化的,通常使用正則表達(dá)式進(jìn)行解析;對于情況(3),需要解析的是JSON數(shù)據(jù);對于情況(4)和(5),通常JavaScript的算法規(guī)律并不容易找到,即使找到,花費的時間代價太大,若網(wǎng)頁數(shù)據(jù)加密,分析難度更大,所以這兩種情況通常采用Selenium或PhantomjS來驅(qū)動瀏覽器加載網(wǎng)頁,直接獲得JavaScript渲染后的網(wǎng)頁,做到“可見即可爬”,接下來解析HTML結(jié)構(gòu)數(shù)據(jù)即可,與(1)的解析方式相同[11]。對于情況(6),iframe嵌入網(wǎng)頁的數(shù)據(jù)解析,只需分析iframe嵌入的網(wǎng)頁源代碼即可,后續(xù)步驟與(1)~(5)相同。具體的數(shù)據(jù)解析如下。

        (1)HTML結(jié)構(gòu)數(shù)據(jù)解析。以重慶水利水務(wù)網(wǎng)“水文管理”模塊下的“今日八時水情”(URL為http: //slj .cq.gov.cn/swxx/jrbssq/Pages/Default.aspx)為例,如圖3所示。查看源代碼,發(fā)現(xiàn)目標(biāo)數(shù)據(jù)已包含在HTML代碼結(jié)構(gòu)中,可利用CSS選擇器進(jìn)行解析。例如使用Scrapy shell提取寸灘和武隆水文站的水位數(shù)據(jù),可分別使用如下代碼進(jìn)行提取,如圖4所示。

        需要注意的是,由于代表站占據(jù)了第2行的第1列,所以寸灘的水位數(shù)據(jù)在第2行的第5列,而武隆的水位數(shù)據(jù)在第4行的第4列。

        (2)JavaScript數(shù)據(jù)解析。以長江水文網(wǎng)的“實時水情”(http://www.cjh.com.cn/)為例,如圖5所示。分析網(wǎng)頁的源代碼,目標(biāo)數(shù)據(jù)是通過標(biāo)簽嵌入的URL(http://www.cjh.com.cn/sqindex.html)加載的,分析此HTML的源代碼,發(fā)現(xiàn)目標(biāo)數(shù)據(jù)包含在Ja-vaScript代碼中(見圖6),其作為一個JSON字符串賦值給了一個JS變量,這種情況使用正則表達(dá)式獲取目標(biāo)數(shù)據(jù)最為方便,如圖7所示。

        (3)Ajax數(shù)據(jù)解析。以湖北省水利廳網(wǎng)站的“水旱災(zāi)害防御”模塊的“江河水情”欄目(http://113.57.190.228: 8001/web/Report/RiverReport)為例,該欄目展示了湖北省56個河道水文站當(dāng)天08:00的水位、流量信息,如圖8所示。目標(biāo)是從表格中解析出實時數(shù)據(jù)(水位、流量)和防洪指標(biāo)數(shù)據(jù)(設(shè)防水位、警戒水位和歷史最高水位),查看江河水情網(wǎng)頁的源代碼發(fā)現(xiàn)表格中并沒有相關(guān)數(shù)據(jù)。打開Chrome開發(fā)工具.選擇Network選項卡,通過XHR篩選出Ajax請求,選定請求,點擊Headers可查看請求和響應(yīng)的頭部詳情。分析可知,請求類型為GET,請求URL為http://113.57.190.228: 8001/Web/Report/GetRiverData? date=2019-11-11+08%3AOO,請求的參數(shù)只有1個date,參數(shù)值經(jīng)過了HTML URL編碼,表示的是ASCII字符“:”,所以真實的參數(shù)值為:2019-10-30 08:00。據(jù)此,可以使用Scrapy模擬Ajax請求,如需獲取歷史數(shù)據(jù),只需要按照一定規(guī)則改變date參數(shù)即可。點擊Preview可預(yù)覽返回的JSON數(shù)據(jù),如圖9所示,對照網(wǎng)頁數(shù)據(jù)可知每個字段的業(yè)務(wù)意義。

        (4)加密網(wǎng)頁數(shù)據(jù)解析。以江蘇水情信息(http://221.226.28.67:88/jsswxxSSI/Web/Default.ht-ml? m=2)為例,使用如圖10所示代碼即可獲取表格數(shù)據(jù)。后續(xù)使用HTML結(jié)構(gòu)數(shù)據(jù)解析方法即可,不再贅述。

        3.3 爬取對象定義

        Scrapy的條目類用來定義爬取的對象。綜合分析各級水利部門網(wǎng)站公開的河道水情信息,并結(jié)合水利部發(fā)布的SL323-2001《實時水雨情數(shù)據(jù)庫表結(jié)構(gòu)與標(biāo)識符》數(shù)據(jù)庫規(guī)范,對于河道水文站爬蟲,用StRiverltem定義爬取對象,需定義的屬性有:測站編碼、時間、測站名稱、河流名稱、水位、流量、設(shè)防水位、警戒水位、保證水位和歷史最高水位。

        3.4 數(shù)據(jù)存儲

        爬蟲將解析的數(shù)據(jù)封裝成條目之后交給項目管道,進(jìn)行數(shù)據(jù)持久化。數(shù)據(jù)持久化的方式有多種,可直接本地化存儲為文件,如TXT、CSV、JSON等,也可保存至Oracle、MySQL等關(guān)系型數(shù)據(jù)庫或者M(jìn)ongoDB、Redis等非關(guān)系型數(shù)據(jù)庫。本文采用MySQL,根據(jù)爬蟲對象StRiverltem設(shè)計河道水情數(shù)據(jù)表結(jié)構(gòu),如表1所示。

        爬取的數(shù)據(jù)保存至MySQL數(shù)據(jù)庫,結(jié)果如圖11所示。

        3.5 異常處理

        爬蟲執(zhí)行一段時間后,可能會出現(xiàn)“403 Forbid-den”的錯誤,這是因為IP訪問頻率過高,網(wǎng)站采取了反爬措施,檢測到某個IP單位時間內(nèi)訪問次數(shù)超過某個設(shè)定的閾值,就會拒絕服務(wù)。解決辦法包括使用代理和降低訪問頻率,鑒于水利數(shù)據(jù)每天更新數(shù)量不多,可采用降低訪問頻率辦法采集歷史數(shù)據(jù),在采集一個時間段的數(shù)據(jù)后,程序停頓1-2 s。如果采集的是實時數(shù)據(jù),水文網(wǎng)站每天更新的數(shù)據(jù)量并不多,通常不會出現(xiàn)訪問頻率過高的問題。

        網(wǎng)站反爬的措施還包括登錄、驗證碼和返回動態(tài)網(wǎng)頁等。水雨情等水利數(shù)據(jù)通常是公開的,無需登陸和輸入驗證碼即可訪問。如果確有登錄和驗證碼的要求,需在爬蟲業(yè)務(wù)邏輯內(nèi)增加登陸模塊,并使用圖象識別或接入打碼平臺進(jìn)行驗證碼識別,成功登陸后獲取cookies信息再對數(shù)據(jù)進(jìn)行處理。若服務(wù)器返回的是動態(tài)網(wǎng)頁,使用前述Selenium進(jìn)行處理,不再贅述。

        4 系統(tǒng)部署

        在完成Scrapy爬蟲程序的編寫和測試之后,將其部署在Scrapyd服務(wù)器中。Scrapyd是由Scrapy官方提供的用于部署Scrapy爬蟲的服務(wù),用戶可通過它提供的HTTP JSON API控制爬蟲。Scrapyd本身提供了一個簡單的UI界面,用戶使用任何1臺能連接到Scrapyd服務(wù)器的計算機即可上傳、啟動、停止爬蟲并查看運行日志,而不必登錄到Scrapyd服務(wù)器。但是,這個界面過于簡單,且1臺Scrapyd服務(wù)器僅有1個界面,多臺即有多個界面,不能進(jìn)行統(tǒng)一管理。

        水利數(shù)據(jù)涉及主題非常多,對應(yīng)的爬蟲數(shù)量很大。為了提高爬蟲的性能,通常將不同業(yè)務(wù)的爬蟲部署在不同的Scrapyd服務(wù)器上。為了實現(xiàn)對爬蟲的統(tǒng)一管理,要使用SpiderKeeper和Scrapyweb,兩者均可實現(xiàn)一鍵部署和定時任務(wù),都是對Scrapyd提供的接口的二次封裝。SpiderKeeper是一款可擴展的爬蟲服務(wù)可視化管理工具,可快速向多個Scrapyd服務(wù)器部署爬蟲,監(jiān)控爬蟲執(zhí)行情況,通過儀表盤管理爬蟲,并定制運行策略。Scrapyweb比SpiderKeep-er功能更豐富(例如異常情況郵件通知),但穩(wěn)定性不及SpiderKeeper,SpiderKeeper可以應(yīng)付大規(guī)模的爬蟲集群。本文采用SpiderKeeper對爬蟲進(jìn)行統(tǒng)一管理。

        使用SpiderKeeper設(shè)置爬蟲分兩步,首先創(chuàng)建一個條目,然后添加1個定時任務(wù),如圖12所示。1個爬蟲對應(yīng)1個定時任務(wù),定時策略又根據(jù)業(yè)務(wù)數(shù)據(jù)的發(fā)布情況決定,如圖13所示。完成對所有爬蟲的設(shè)置之后,可對爬蟲進(jìn)行關(guān)閉、運行一次和刪除操作,如圖14所示。

        5 結(jié)語

        本研究基于Scrapy的水利數(shù)據(jù)爬取,以水雨情為例,將各水利廳局及流域機構(gòu)公開的水雨情數(shù)據(jù)解析分為HTML結(jié)構(gòu)數(shù)據(jù)、JavaScript數(shù)據(jù)、Ajax數(shù)據(jù)和加密數(shù)據(jù)4類。詳細(xì)介紹了解析方法和原理,并將提取到的水雨情數(shù)據(jù)進(jìn)行規(guī)范化存儲,可為水利一張圖和使用大數(shù)據(jù)方法研究水雨情預(yù)警、防汛抗旱、應(yīng)急管理提供數(shù)據(jù)支持。

        參考文獻(xiàn):

        [1] 張馳恒一.基于多數(shù)據(jù)源的水利數(shù)據(jù)獲取及大數(shù)據(jù)服務(wù)[D].西安:西安理工大學(xué),2018.

        [2]Castillo C.Effective web crawling[Jl. ACM SIGIR Fo- rum, 2005 .39(1): 55-56.

        [3]劉金紅,陸余良.主題網(wǎng)絡(luò)爬蟲研究綜述[J].計算機應(yīng)用研究,2007,24(10):26-29.

        [4]周德懋,李舟軍.高性能網(wǎng)絡(luò)爬蟲:研究綜述[J].計算機科學(xué),2009,36(8):26-29.

        [5]于娟,劉強.主題網(wǎng)絡(luò)爬蟲研究綜述[J]計算機工程與科學(xué),2015,37(2):231-237.

        [6]Rungsawang A,Angkawattanawit N.Learnable Lopic-spe-cific web crawler[J].Journal of Network&Computer Ap-plications, 2005, 28(2): 97-114.

        [7] Kozanidis L.An Ontology-Based Focused Crawler[Cl//Intemational Conference on Natural Language and Infor-mation Systems: Applications of Natural Language to In-formation Systems. Springer-Verlag, 2008: 376-379.

        [8]李喬宇,尚明華,王富軍,等.基于Scrapy的農(nóng)業(yè)網(wǎng)絡(luò)數(shù)據(jù)爬取[J].山東農(nóng)業(yè)科學(xué)報,2018,50(1):142-147.

        [9] 馬聯(lián)帥.基于Scrapy的分布式網(wǎng)絡(luò)新聞抓取系統(tǒng)設(shè)計與實現(xiàn)[D].西安:西安電子科技大學(xué),2015.

        [10]

        Scrapy developers. Scrapy Architecture overview[DB/OL].

        https: //doc.scrapy.org/en/latest/topics/architecture. html, 2018。

        [11]杜彬.基于Selenium的定向網(wǎng)絡(luò)爬蟲設(shè)計與實現(xiàn)[J]金融科技時代,2016(7):35-39.

        (編輯:李慧)

        作者簡介:游攀利,男,工程師,碩士,主要從水利信息化建設(shè)及軟件開發(fā)工作。E-mail: youpanli@cjwsjy.com.cn

        猜你喜歡
        網(wǎng)絡(luò)爬蟲數(shù)據(jù)采集
        煉鐵廠鐵量網(wǎng)頁數(shù)據(jù)獲取系統(tǒng)的設(shè)計與實現(xiàn)
        CS5463在植栽用電子鎮(zhèn)流器老化監(jiān)控系統(tǒng)中的應(yīng)用
        大數(shù)據(jù)時代高校數(shù)據(jù)管理的思考
        科技視界(2016年18期)2016-11-03 22:51:40
        鐵路客流時空分布研究綜述
        基于廣播模式的數(shù)據(jù)實時采集與處理系統(tǒng)
        軟件工程(2016年8期)2016-10-25 15:54:18
        通用Web表單數(shù)據(jù)采集系統(tǒng)的設(shè)計與實現(xiàn)
        軟件工程(2016年8期)2016-10-25 15:52:53
        基于開源系統(tǒng)的綜合業(yè)務(wù)數(shù)據(jù)采集系統(tǒng)的開發(fā)研究
        基于社會網(wǎng)絡(luò)分析的權(quán)威網(wǎng)頁挖掘研究
        主題搜索引擎中網(wǎng)絡(luò)爬蟲的實現(xiàn)研究
        淺析如何應(yīng)對網(wǎng)絡(luò)爬蟲流量
        中國市場(2016年23期)2016-07-05 04:35:08
        亚洲美女影院| 国产日产韩国av在线| 中国妇女做爰视频| 无码骚夜夜精品| jlzzjlzz全部女高潮| av手机天堂在线观看| 国产最新女主播福利在线观看 | 狠狠色欧美亚洲狠狠色www| 国产女人高潮视频在线观看 | 精品国产AⅤ无码一区二区| 日本视频一区二区二区| 与漂亮的女邻居少妇好爽| 少妇性饥渴无码a区免费| 99久久久国产精品免费蜜臀| 国产人成在线免费视频| 国产精品美女一区二区av| 999zyz玖玖资源站永久| 中文字幕精品久久久久人妻| 国产精品每日更新在线观看| 亚洲av色香蕉一区二区三区av| 在线观看特色大片免费视频| 国产精品人妻一区夜夜爱| 国产成人av综合亚洲色欲| 久久久久国产精品四虎| 国产精品老熟女乱一区二区| 夜夜揉揉日日人人青青| 亚洲欧美日韩国产色另类| 手机在线免费av网址| 国精产品一区一区三区| 亚洲成色www久久网站夜月| 成人无码激情视频在线观看| 国产白色视频在线观看| 国产一区二区女内射| 亚洲AV无码资源在线观看| 久久亚洲国产高清av一级| 国产不卡在线视频观看| 国产精品9999久久久久| 婷婷激情六月| 精品国产乱子伦一区二区三| 国产成人无码精品久久二区三区| 亚洲精品无码mv在线观看|