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

        ?

        網(wǎng)絡(luò)爬蟲實(shí)時(shí)控制器的設(shè)計(jì)與實(shí)現(xiàn)

        2021-04-01 08:14:24李健張克亮
        現(xiàn)代計(jì)算機(jī) 2021年5期
        關(guān)鍵詞:爬蟲框架控制器

        李健,張克亮

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

        0 引言

        網(wǎng)絡(luò)爬蟲不僅作為搜索引擎的關(guān)鍵組件,而且在其他領(lǐng)域也有廣泛應(yīng)用[1]。借助網(wǎng)絡(luò)爬蟲,語言學(xué)家可以下載大量文本以研究語言現(xiàn)象,銷售人員可以搜集產(chǎn)品的價(jià)格和銷量以分析市場行情,領(lǐng)域愛好者能夠?qū)⒛硞€(gè)網(wǎng)站或欄目的內(nèi)容收藏到本地,AI研究者能夠采集各類數(shù)據(jù)作為機(jī)器學(xué)習(xí)的素材。

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

        1 爬蟲框架設(shè)計(jì)

        1.1 爬蟲工作原理

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

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

        圖1爬蟲基本工作流程

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

        1.2 框架總體結(jié)構(gòu)

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

        圖2輕量級爬蟲框架

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

        1.3 框架應(yīng)用模式

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

        圖3爬蟲框架應(yīng)用模式

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

        2 簡單爬蟲控制器

        2.1 控制器設(shè)計(jì)

        作為爬蟲框架的核心部件,控制器的設(shè)計(jì)尤其重要。它對外提供操作接口,對內(nèi)控制整個(gè)爬蟲的運(yùn)行過程。簡單爬蟲控制器的組成結(jié)構(gòu)如圖4所示。

        圖4簡單爬蟲控制器

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

        收用戶輸入的種子URL,并將結(jié)果返回;②控制爬行路線:按照一定策略(深度優(yōu)先、廣度優(yōu)先等)進(jìn)行網(wǎng)頁爬?。虎劬S護(hù)訪問列表:對于已經(jīng)訪問過的URL不再重復(fù)訪問;④設(shè)置過濾條件:對于擴(kuò)展URL進(jìn)行條件過濾;⑤控制任務(wù)總量:設(shè)置最大采集數(shù)量、最大搜索層數(shù)等。

        2.2控制器實(shí)現(xiàn)

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

        圖5爬蟲運(yùn)行結(jié)果

        3 實(shí)時(shí)爬蟲控制器

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

        3.1 控制器設(shè)計(jì)

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

        圖6實(shí)時(shí)爬蟲控制器

        3.2 控制器實(shí)現(xiàn)

        圖7爬蟲任務(wù)存放目錄

        4 結(jié)語

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

        猜你喜歡
        爬蟲框架控制器
        利用網(wǎng)絡(luò)爬蟲技術(shù)驗(yàn)證房地產(chǎn)灰犀牛之說
        框架
        基于Python的網(wǎng)絡(luò)爬蟲和反爬蟲技術(shù)研究
        廣義框架的不相交性
        利用爬蟲技術(shù)的Geo-Gnutel la VANET流量采集
        電子測試(2018年1期)2018-04-18 11:53:04
        大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡(luò)爬蟲技術(shù)
        電子制作(2017年9期)2017-04-17 03:00:46
        WTO框架下
        法大研究生(2017年1期)2017-04-10 08:55:06
        一種基于OpenStack的云應(yīng)用開發(fā)框架
        模糊PID控制器設(shè)計(jì)及MATLAB仿真
        MOXA RTU控制器ioPAC 5542系列
        自動化博覽(2014年9期)2014-02-28 22:33:17
        永久免费中文字幕av| 欧美gv在线观看| 国产精选免在线观看| 亚洲区福利视频免费看| 亚洲国产精品久久婷婷| 久久www免费人成精品| 精品久久久久久国产| 看黄色亚洲看黄色亚洲| 亚洲高清国产成人精品久久 | 初高中生精品福利视频| 青青青伊人色综合久久| 美女视频一区二区三区在线| 亚洲av无码成人网站在线观看 | 免费无遮挡禁18污污网站| 国产精品欧美日韩在线一区| 日韩成精品视频在线观看| 日本人妻伦理在线播放| 天天夜碰日日摸日日澡| 无码日日模日日碰夜夜爽| 国内精品女同一区二区三区| 色综合久久蜜芽国产精品| 国产精品jizz在线观看老狼| 日韩激情网| 青青草激情视频在线播放| 国产精品v片在线观看不卡| 最新国产三级| 韩国女主播一区二区三区在线观看 | 四虎成人在线| 国产丝袜在线福利观看| 亚洲自偷自拍另类第1页| 久久精品无码中文字幕 | 日本一道本加勒比东京热| 波多野结衣绝顶大高潮| 四虎影视永久在线精品| av蜜桃视频在线观看| 国产人成精品免费久久久| 色八区人妻在线视频免费| 亚洲国产精品久久久性色av| av在线播放免费观看| 性饥渴的农村熟妇| 2021久久最新国产精品|