999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

網絡爬蟲實時控制器的設計與實現

2021-04-01 08:14:24李健張克亮
現代計算機 2021年5期

李健,張克亮

(信息工程大學洛陽校區(qū),洛陽471003)

0 引言

網絡爬蟲不僅作為搜索引擎的關鍵組件,而且在其他領域也有廣泛應用[1]。借助網絡爬蟲,語言學家可以下載大量文本以研究語言現象,銷售人員可以搜集產品的價格和銷量以分析市場行情,領域愛好者能夠將某個網站或欄目的內容收藏到本地,AI研究者能夠采集各類數據作為機器學習的素材。

國內外眾多機構和個人開發(fā)了多款爬蟲工具軟件,如Nutch、Heritrix、SOUP、ParseHub、GooSeeker、八爪魚、火車頭等;常用的爬蟲框架包括WebCollector、Nutch、WebMagic、Heritrix、Scrapy和PySpider等[2-4]。這些爬蟲軟件和框架在很大程度上便利了人們對網絡數據的獲取,但還具有某些局限性:有的功能相對單一,使用方式受限,可定制化程度不夠;有的安裝配置繁瑣,框架結構復雜,使用門檻較高;有的采用封閉式框架,不提供開源代碼,難以進行二次開發(fā);有的抓取速度慢,解析和抽取能力弱,性能表現不佳。總之,基于現有框架快速開發(fā)個性化爬蟲仍然具有一定難度。因此,為開發(fā)者提供一個輕量級、模塊化、免費開源、高效易用的網絡爬蟲框架十分重要。

1 爬蟲框架設計

1.1 爬蟲工作原理

網絡爬蟲(Web Crawler)是按照一定規(guī)則自動獲取Web信息資源的計算機程序[5]?!芭老x”是一種形象的比喻,有時也被稱為網絡蜘蛛(Web Spider)或網絡機器人(Web Robot)。網絡爬蟲主要是面向Web的,這是由Web資源的開放性和豐富性所決定的。網絡爬蟲通常會對Web原始數據進行二次抽取,以提高目標數據的結構化程度和價值密度。爬蟲的規(guī)則一方面是指爬蟲所采用的搜索策略(如深度優(yōu)先、廣度優(yōu)先等),另一方面是指爬蟲要遵循的行業(yè)規(guī)范(如Robot協(xié)議)。

根據數據采集的范圍和精度不同,網絡爬蟲可分為“漫爬型”和“垂直型”。前者用于搜索引擎的廣泛采集,也被稱通用爬蟲;后者用于領域數據的精準采集,也被稱聚焦爬蟲。通用爬蟲對網頁中所有超鏈接進行無差別搜索,得到一棵完整的生成樹;聚焦爬蟲則按照一定條件進行篩選,得到一棵被剪枝的生成樹。聚焦爬蟲面向特定主題和應用,是行業(yè)人員獲取領域數據的重要工具,也是文本關注的對象。網絡爬蟲的必要技術包括:Web訪問、信息抽取、數據存儲、爬蟲控制等,其基本工作流程如圖1所示。

圖1爬蟲基本工作流程

首先將種子URL放入任務隊列,然后循環(huán)檢測隊列是否為空,若不為空則取出下一個URL進行數據下載,若為空則結束爬蟲任務。Web資源下載完成后,對其進行目標數據抽取和擴展鏈接過濾,目標數據存入存儲系統(tǒng),擴展鏈接添加到任務隊列。在URL不斷出列的同時又有新的URL補充進來,這樣就實現了自動采集。為了避免重復采集,我們通常借助一個Visited數組來記錄那些已被訪問的URL。

1.2 框架總體結構

面向個性化需求的輕量級爬蟲框架應當采用模塊化設計,能夠下載各類網絡資源,并支持異步下載、編碼檢測、提交表單、壓縮傳輸、使用代理等機制;能夠解析和抽取HTML、XML、JSON等多種數據;能夠提供靈活的爬蟲控制方式,內置常用搜索算法;能夠管理和分配線程資源和代理資源,支持分布式部署。根據上述需求,我們設計了如圖2所示的爬蟲框架,主要組件包括:控制器、下載器、解析器、線程池、代理池等、分布式部署器和智能化工具包。

圖2輕量級爬蟲框架

框架中的“智能化工具包”通過人機交互技術實現可視化模板配置,使用戶不必掌握Web專業(yè)知識就能完成模板配置,從而降低爬蟲使用門檻[6]。通過智能抽取技術實現對網頁內容(如正文、日期、目錄等)的自動抽取,進一步減少配置工作量。通過主題模型計算網頁內容的相關度,從而提高主題爬蟲的采集精度[7]。

1.3 框架應用模式

通常情況下,框架中的控制器、解析器、下載器為必選組件,其余為可選組件,用戶可根據需要進行組裝。爬蟲框架的基本應用模式如圖3所示。

圖3爬蟲框架應用模式

引用爬蟲框架后,開發(fā)者只需幾行代碼即可完成對簡單任務的爬?。粚τ谳^復雜的任務,亦可通過參數化定制或二次開發(fā)來實現。當需要規(guī)劃新的爬蟲路線時,開發(fā)者通常只須重寫控制器的相關方法,從而最大程度復用框架功能。

2 簡單爬蟲控制器

2.1 控制器設計

作為爬蟲框架的核心部件,控制器的設計尤其重要。它對外提供操作接口,對內控制整個爬蟲的運行過程。簡單爬蟲控制器的組成結構如圖4所示。

圖4簡單爬蟲控制器

爬蟲控制器的具體功能包括:①提供數據接口:接

收用戶輸入的種子URL,并將結果返回;②控制爬行路線:按照一定策略(深度優(yōu)先、廣度優(yōu)先等)進行網頁爬??;③維護訪問列表:對于已經訪問過的URL不再重復訪問;④設置過濾條件:對于擴展URL進行條件過濾;⑤控制任務總量:設置最大采集數量、最大搜索層數等。

2.2控制器實現

上述代碼通過實現了對“洛陽政府網站”的站內爬?。菏紫?,創(chuàng)建一個BFSController對象;其次,限定最大采集任務量為100個頁面;再次,通過設置URL過濾器要求擴展鏈接中必須包含“l(fā)y.gov.cn”字符串,從而保證“站內搜索”;最后,將網站首頁(http://www.ly.gov.cn/)作為起始種子開啟爬蟲任務。執(zhí)行上述代碼,運行結果如圖5所示。

圖5爬蟲運行結果

3 實時爬蟲控制器

此前的爬蟲控制器要等任務全部完成后才能返回結果,這并不符合實際需求。由于爬蟲在開放的網絡環(huán)境中運行,任何意外情況都可能發(fā)生,例如斷網、停電、死機、誤操作、服務器故障等。若爬蟲程序在結果返回之前就異常退出或無法繼續(xù)運行,那么此前的工作也就變成徒勞。當采集任務量很大時,即使采集過程沒有遇到異常情況,爬蟲控制器也不可能一次性返回所有結果,這就需要對下載內容進行實時保存。

3.1 控制器設計

根據上述分析,我們對控制器提出以下改進:①采集結果不再等任務全部完成后一并返回,而是每下載一個任務就觸發(fā)回調機制(回調方法由用戶指定,可進行實時保存或進一步抽?。?。②可以保存當前任務場景(Save),也可以從已保存的場景中恢復任務并繼續(xù)執(zhí)行(Restore)。③由用戶設置一個自動保存數量(M),爬蟲每采集M個任務就自動保存一次任務場景;即使有異常情況發(fā)生,需要重新下載的任務最多也不會超過M個。改進后的爬蟲控制器具有一定的實時處理能力,我們稱之為“實時爬蟲控制器”(如圖6所示)。

圖6實時爬蟲控制器

3.2 控制器實現

圖7爬蟲任務存放目錄

4 結語

筆者在項目實踐中發(fā)現:Web新技術層出不窮,網頁結構千差萬別,業(yè)務數據多種多樣,采集目標各不相同。面對個性化的數據采集需求,沒有哪一款網絡爬蟲能包打天下。在已有爬蟲框架的基礎上進行二次開發(fā),是一種高效可行的方法。實驗結果表明:本文所提出的輕量級爬蟲框架是功能完備的,所設計的實時爬蟲控制器是高效易用的。在控制器的實現過程中也涉及到了下載器和解析器,但由于篇幅所限文中未能詳細介紹。若需要完整的實現代碼,可通過電子郵箱聯(lián)系作者。

主站蜘蛛池模板: 国产免费怡红院视频| 五月婷婷导航| 精品伊人久久大香线蕉网站| 亚洲色图欧美激情| 久久久久亚洲精品成人网 | 免费毛片全部不收费的| 综合色88| 婷婷开心中文字幕| 九色91在线视频| 日本黄色a视频| 亚洲大学生视频在线播放| 国产一在线| 色网在线视频| 亚洲欧美在线精品一区二区| 极品国产一区二区三区| 亚洲嫩模喷白浆| 伊人精品视频免费在线| 中国特黄美女一级视频| 色香蕉网站| 性做久久久久久久免费看| 欧美性色综合网| 99re精彩视频| 亚洲人成亚洲精品| 欧美激情,国产精品| 操美女免费网站| 亚洲成人一区在线| 精品欧美日韩国产日漫一区不卡| 久久九九热视频| 四虎成人精品| 国产亚洲男人的天堂在线观看| 大陆精大陆国产国语精品1024| 国产精品人莉莉成在线播放| 国产三级韩国三级理| 日韩精品一区二区三区swag| 久久久久中文字幕精品视频| 成人福利视频网| 毛片久久网站小视频| 中文字幕久久波多野结衣| 波多野结衣一区二区三区AV| 四虎成人免费毛片| 国产欧美日韩精品综合在线| 韩国自拍偷自拍亚洲精品| 亚洲无线国产观看| 免费网站成人亚洲| 日韩精品无码免费专网站| 四虎在线高清无码| 成人在线第一页| 欧美日韩国产系列在线观看| 日本午夜视频在线观看| 欧美亚洲国产一区| 亚洲一区二区日韩欧美gif| 国产精品美女自慰喷水| 国内99精品激情视频精品| 午夜欧美理论2019理论| 国产视频大全| 久久不卡国产精品无码| 国模视频一区二区| 久久不卡国产精品无码| 不卡视频国产| 国产精品主播| 国产欧美专区在线观看| 日本欧美在线观看| 亚洲午夜18| 亚洲午夜片| 国产成人久久综合777777麻豆| 婷婷成人综合| 国产无人区一区二区三区| 日韩在线网址| 国产男女免费视频| 亚洲第一黄色网| 国产99视频精品免费视频7 | 久久久久久久97| a毛片在线播放| 中文字幕亚洲另类天堂| 欧美在线国产| 国产在线视频自拍| 最新痴汉在线无码AV| 成人av专区精品无码国产| 欧美午夜理伦三级在线观看| 国产高清在线精品一区二区三区 | 亚洲永久免费网站| 亚洲欧美在线综合图区|