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)系作者。

主站蜘蛛池模板: 亚洲 日韩 激情 无码 中出| 日韩国产另类| 夜精品a一区二区三区| 日韩黄色在线| 免费一级毛片在线播放傲雪网 | 亚洲无线一二三四区男男| 在线观看热码亚洲av每日更新| 国产精品永久在线| 免费a级毛片18以上观看精品| 欧美中文字幕一区| 亚洲AV永久无码精品古装片| 好吊妞欧美视频免费| 亚洲精品国产综合99| 九色视频线上播放| 亚洲欧美日韩中文字幕在线一区| 亚洲国产在一区二区三区| 欧美精品1区| 国产精品成人免费综合| 不卡午夜视频| 亚洲欧美在线精品一区二区| av大片在线无码免费| 欧美一区精品| 久久香蕉欧美精品| 日韩大片免费观看视频播放| 国产色爱av资源综合区| 亚洲一区二区三区在线视频| 一边摸一边做爽的视频17国产 | 国产精品永久不卡免费视频| 国产噜噜噜视频在线观看| 性欧美久久| 91日本在线观看亚洲精品| 91网在线| 亚洲AⅤ永久无码精品毛片| 亚洲色偷偷偷鲁综合| 日本在线亚洲| 丰满人妻中出白浆| 最新亚洲av女人的天堂| 亚洲区视频在线观看| 日韩av高清无码一区二区三区| 国产精品亚洲五月天高清| 国产精品吹潮在线观看中文| 丁香五月亚洲综合在线| 国产免费网址| 五月婷婷亚洲综合| 国产人妖视频一区在线观看| 欧美人与性动交a欧美精品| 91在线精品麻豆欧美在线| 日本不卡视频在线| 日本一区二区三区精品国产| 欧美国产三级| 亚洲不卡影院| 婷婷六月综合网| 国产精品无码在线看| 福利国产微拍广场一区视频在线| 国产伦片中文免费观看| 亚洲精品无码AV电影在线播放| 91欧美在线| 天天综合网亚洲网站| 亚洲一区国色天香| 日韩AV无码免费一二三区| 欧美天堂久久| 国产精选小视频在线观看| 国产精品999在线| 亚洲av无码人妻| 欧美在线视频a| 亚洲日本www| 五月六月伊人狠狠丁香网| 欧美精品导航| 国产精品白浆在线播放| 国产欧美精品专区一区二区| 精品久久综合1区2区3区激情| 真人免费一级毛片一区二区| 久久国产精品影院| 国产免费福利网站| 国产成人精品视频一区视频二区| 在线国产你懂的| 免费va国产在线观看| 婷婷色婷婷| 免费Aⅴ片在线观看蜜芽Tⅴ| 国产伦精品一区二区三区视频优播| a级毛片免费网站| 国产精品久久久久无码网站|