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

        ?

        分布式網(wǎng)絡(luò)爬蟲(chóng)設(shè)計(jì)

        2017-10-13 15:49:22郭丙琴陳愛(ài)武
        關(guān)鍵詞:頁(yè)面信息設(shè)計(jì)

        郭丙琴陳愛(ài)武

        ?

        分布式網(wǎng)絡(luò)爬蟲(chóng)設(shè)計(jì)

        郭丙琴1陳愛(ài)武2

        (1.湖南科技學(xué)院 教學(xué)質(zhì)量管理處,湖南 永州 425199;2.湖南科技學(xué)院 電子與信息工程學(xué)院,湖南 永州 425199)

        網(wǎng)絡(luò)爬蟲(chóng)是互聯(lián)網(wǎng)信息獲取的重要工具之一,其性能的好壞直接影響到互聯(lián)網(wǎng)信息檢索的準(zhǔn)確性,互聯(lián)網(wǎng)信息復(fù)雜多變,造成傳統(tǒng)方法的網(wǎng)絡(luò)爬蟲(chóng)容易抓取到錯(cuò)誤信息。論文在此基礎(chǔ)上提出了一種并行和分布式技術(shù)進(jìn)行設(shè)計(jì),并通過(guò)招聘網(wǎng)頁(yè)信息抓取的實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果證明該網(wǎng)絡(luò)爬蟲(chóng)性能穩(wěn)定,可以提升抓取信息的準(zhǔn)確性。

        分布式;網(wǎng)絡(luò)爬蟲(chóng);Python;搜索引擎

        1 引 言

        搜索引擎是基于一種網(wǎng)絡(luò)爬蟲(chóng)技術(shù)來(lái)抓取Web網(wǎng)頁(yè)、文檔、圖片、音頻、視頻等信息,并通過(guò)索引來(lái)組織這些信息,設(shè)計(jì)性能優(yōu)良的網(wǎng)絡(luò)爬蟲(chóng)是搜索引擎重要工作之一[1]。網(wǎng)絡(luò)爬蟲(chóng)始于一張被稱(chēng)作種子的統(tǒng)一資源地址(URLs)列表,當(dāng)網(wǎng)絡(luò)爬蟲(chóng)訪問(wèn)這些統(tǒng)一資源定位器時(shí),它們會(huì)甄別出頁(yè)面上所有的超鏈接,并將它們寫(xiě)入一張“待訪列表”,即所謂“爬行疆域”(Crawl Frontier),此疆域上的統(tǒng)一資源地址將被按照一套策略循環(huán)訪問(wèn)。如果爬蟲(chóng)在執(zhí)行的過(guò)程中復(fù)制歸檔和保存網(wǎng)站上的信息,這些檔案通常儲(chǔ)存,使它們可以被查看。網(wǎng)絡(luò)爬蟲(chóng)只能在給定時(shí)間內(nèi)下載有限數(shù)量的網(wǎng)頁(yè),所以設(shè)計(jì)大容量體積的網(wǎng)絡(luò)爬蟲(chóng)時(shí)需要優(yōu)先考慮其下載,而互聯(lián)網(wǎng)資源瞬息萬(wàn)變,網(wǎng)絡(luò)爬蟲(chóng)下載的網(wǎng)頁(yè)在使用前就可能已經(jīng)被修改甚至是刪除了。另外,服務(wù)器端軟件所生成的統(tǒng)一資源地址數(shù)量龐大,所以網(wǎng)絡(luò)爬蟲(chóng)難以避免的采集到重復(fù)內(nèi)容,根據(jù)超文本協(xié)議“顯示請(qǐng)求”(HTTP GET)的參數(shù)的無(wú)盡組合所返回的頁(yè)面中,只有很少一部分傳回唯一的內(nèi)容等等,這些問(wèn)題是網(wǎng)絡(luò)爬蟲(chóng)設(shè)計(jì)所面臨的基本問(wèn)題[2]。

        論文通過(guò)招聘網(wǎng)站的職位信息抓取的實(shí)驗(yàn)進(jìn)行了設(shè)計(jì)和研究,并且對(duì)抓取的數(shù)據(jù)進(jìn)行數(shù)據(jù)分析,解決數(shù)據(jù)的去重問(wèn)題、分布式問(wèn)題和web開(kāi)發(fā)的整合問(wèn)題等。

        2 性能分析與模塊設(shè)計(jì)

        2.1 性能分析

        由于網(wǎng)絡(luò)爬蟲(chóng)是對(duì)互聯(lián)網(wǎng)上數(shù)據(jù)進(jìn)行處理,信息量非常大,因此對(duì)性能的要求是非常高的,所以在設(shè)計(jì)時(shí)一定要考慮其性能優(yōu)化問(wèn)題,文獻(xiàn)顯示[3,4],在設(shè)計(jì)網(wǎng)絡(luò)爬蟲(chóng)是需要考慮的主要性能包括數(shù)據(jù)庫(kù)查詢(xún)、程序執(zhí)行的效率、網(wǎng)絡(luò)IO流高低等,另外對(duì)挖取到的網(wǎng)頁(yè)進(jìn)行解析時(shí),務(wù)必要保證解析結(jié)果的準(zhǔn)確性,這樣才能保證爬蟲(chóng)運(yùn)行的穩(wěn)定性,一旦解析出錯(cuò),會(huì)導(dǎo)致大量的垃圾數(shù)據(jù)產(chǎn)生,極大的影響爬蟲(chóng)的運(yùn)行效率。在爬蟲(chóng)運(yùn)行過(guò)程中,一定要做到可監(jiān)控,即使有意外的情況發(fā)生,也能及時(shí)的定位到錯(cuò)誤。而且還可以通過(guò)監(jiān)控頁(yè)面的數(shù)據(jù)及時(shí)了解爬蟲(chóng)的工作性能并保證爬蟲(chóng)在每個(gè)時(shí)刻都達(dá)到最優(yōu)的狀態(tài)[5]。

        2.2模塊構(gòu)成

        論文設(shè)計(jì)的網(wǎng)絡(luò)爬蟲(chóng)(crawler)主要包含以下幾個(gè)基本模塊:扒取任務(wù)分配模塊、任務(wù)執(zhí)行模塊(客戶(hù)端)、頁(yè)面解析模塊、數(shù)據(jù)處理模塊、運(yùn)行監(jiān)控模塊,具體結(jié)構(gòu)體系如圖1所示。

        根據(jù)圖1所示的模塊構(gòu)成,網(wǎng)絡(luò)爬蟲(chóng)運(yùn)行流程是,首先手動(dòng)創(chuàng)建多個(gè)搜索條件,每一個(gè)Session對(duì)應(yīng)一個(gè)搜索條件,當(dāng)網(wǎng)絡(luò)爬蟲(chóng)客戶(hù)端啟動(dòng)時(shí)會(huì)自動(dòng)請(qǐng)求爬蟲(chóng)服務(wù)器(SERVER),服務(wù)器首先根據(jù)客戶(hù)端的IP驗(yàn)證客戶(hù)端申請(qǐng)的有效性;如果判斷是非正常的客戶(hù)端請(qǐng)求,服務(wù)端不返回任何數(shù)據(jù)。如果判斷客戶(hù)端請(qǐng)求正常,服務(wù)端會(huì)將客戶(hù)端發(fā)過(guò)來(lái)的html頁(yè)面進(jìn)行GZIP解壓(為減少網(wǎng)絡(luò)流量,客戶(hù)端從網(wǎng)站上下載的html頁(yè)面會(huì)進(jìn)行GZIP壓縮后再發(fā)送給服務(wù)器),然后傳給相應(yīng)的callback函數(shù)進(jìn)行處理。當(dāng)callback處理完成,服務(wù)端根據(jù)客戶(hù)端的申請(qǐng)生成一個(gè)當(dāng)前Session的Queue,并將生成的Queue的信息返回客戶(hù)端。論文設(shè)計(jì)的基于招聘網(wǎng)頁(yè)信息網(wǎng)絡(luò)爬蟲(chóng)Callback的工作模式分兩種類(lèi)型,列表頁(yè)面和詳情頁(yè)面,列表頁(yè)面在解析的時(shí)候會(huì)將所有詳情頁(yè)的url和職位(公司)的基本信息解析出來(lái),然后對(duì)解析出來(lái)的url進(jìn)行去重、有效性檢查等處理,最后根據(jù)處理后的url生成詳情頁(yè)的Queue。詳情頁(yè)面在解析時(shí)主要是將職位(公司)的詳細(xì)信息提取出來(lái),主要包括職位名稱(chēng)、薪資、招聘信息發(fā)布時(shí)間、職位描述等信息。

        3 系統(tǒng)分析與實(shí)現(xiàn)

        論文的網(wǎng)絡(luò)爬蟲(chóng)是針對(duì)招聘網(wǎng)站公司名稱(chēng)及職位信息而設(shè)計(jì)的,考慮到后期代碼的擴(kuò)展和維護(hù),所以程序的整體框架采用面向?qū)ο蟮乃季S,在程序設(shè)計(jì)過(guò)程中,網(wǎng)絡(luò)爬蟲(chóng)實(shí)現(xiàn)了一個(gè)爬蟲(chóng)的基類(lèi)(BaseCrawler),這樣在以后維護(hù)時(shí)如需要加入新的招聘網(wǎng)站的時(shí)候,只需要實(shí)現(xiàn)一個(gè)繼承于BaseCrawler的招聘網(wǎng)站專(zhuān)用的子類(lèi)和對(duì)應(yīng)的解析器。在設(shè)計(jì)Resource的時(shí)候,由于監(jiān)控資源類(lèi)和爬蟲(chóng)資源類(lèi)功能上的差異性,所以將其分開(kāi)設(shè)計(jì),使用的框架要求每一個(gè)Resource綁定一個(gè)相關(guān)的Model,而監(jiān)控資源類(lèi)和爬蟲(chóng)資源類(lèi)兩者綁定的Model存在一點(diǎn)沖突,所以最后在綁定Model的時(shí)候存在一些的不合理性,設(shè)計(jì)Session和Queue時(shí),考慮到每一個(gè)搜索條件會(huì)產(chǎn)生不同的搜索結(jié)果,所以利用Session將各個(gè)搜索條件分開(kāi),讓Queue來(lái)表示每一次的請(qǐng)求動(dòng)作,這樣設(shè)計(jì)方法便于在網(wǎng)絡(luò)爬蟲(chóng)運(yùn)行時(shí)及時(shí)發(fā)現(xiàn)bug保證程序結(jié)構(gòu)的清晰度。

        3.1爬行策略實(shí)現(xiàn)

        網(wǎng)絡(luò)爬蟲(chóng)程序的初衷是盡可能遍歷每一搜索條件所有的頁(yè)面,所以論文采用廣度優(yōu)先算法的理論,廣度優(yōu)先算法理論上能夠覆蓋更多的節(jié)點(diǎn),在扒取招聘網(wǎng)站信息的時(shí)候,先根據(jù)特定搜索條件將所有職位列表下載下來(lái),然后再依次下載相關(guān)的職位詳情。

        圖1.Crawler模塊組成

        圖2.URL節(jié)點(diǎn)分布圖

        如圖2所示,假如A代表初始URL,BCDEF為根據(jù)A節(jié)點(diǎn)獲取的5個(gè)URL,G和HI為根據(jù)F、E獲取的3個(gè)URL,以此類(lèi)推。那么這些URL獲取的順序就是ABCDEFHIG這樣一個(gè)順序,當(dāng)通過(guò)E節(jié)點(diǎn)獲取到H節(jié)點(diǎn)的URL之后,并不會(huì)馬上進(jìn)行下載,而是先解析同E在同一層中的F節(jié)點(diǎn)對(duì)應(yīng)的URL,當(dāng)這一層URL全部下載完后,再開(kāi)始下一層URL下載。

        3.2 Server端并行方案實(shí)現(xiàn)

        我們采用gunicorn結(jié)合gevent的方式實(shí)現(xiàn)并行訪問(wèn)機(jī)制,雖然多線程的方案能夠減少進(jìn)程創(chuàng)建時(shí)候帶來(lái)的開(kāi)銷(xiāo),但是對(duì)于臨界資源的訪問(wèn)控制等變得更加的復(fù)雜,需要考慮的因素更多,這樣導(dǎo)致開(kāi)發(fā)的難度大大提升。gunicorn和gevent支持pip直接下載安裝,只需兩句簡(jiǎn)單的shell命令即可安裝完成,為了結(jié)合gevent使用,我們只需要在爬蟲(chóng)的啟動(dòng)程序中加入代碼即可實(shí)現(xiàn)。

        網(wǎng)絡(luò)爬蟲(chóng)對(duì)招聘網(wǎng)站信息監(jiān)控頁(yè)面曲線如圖3所示。

        圖3.監(jiān)控頁(yè)面曲線圖

        3.3爬行策略?xún)?yōu)化

        爬蟲(chóng)一般正常運(yùn)行了一段時(shí)間后,扒取速度就會(huì)變得越來(lái)越慢,經(jīng)大量實(shí)驗(yàn)證明這種速度變慢是由于服務(wù)器的接口的性能所產(chǎn)生的問(wèn)題,網(wǎng)絡(luò)爬蟲(chóng)在建表的時(shí)候,生成聯(lián)合索引,所以導(dǎo)致查詢(xún)速度非常慢,另外,在搜索強(qiáng)制加載的Queue的時(shí)候,可能就要進(jìn)行文件排序,這種文件排序會(huì)導(dǎo)致搜索速度降低,我們?cè)谶M(jìn)行策略?xún)?yōu)化時(shí)只需將代碼中的搜索條件改為唯一。

        結(jié)束語(yǔ)

        論文基于分布式方法進(jìn)行網(wǎng)絡(luò)爬蟲(chóng)的設(shè)計(jì),并具體針對(duì)招聘網(wǎng)站的信息進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果顯示論文設(shè)計(jì)的網(wǎng)絡(luò)爬蟲(chóng)性能穩(wěn)定,符合互聯(lián)網(wǎng)和大數(shù)據(jù)搜索引擎的基本要求。但存在多個(gè)客戶(hù)端同時(shí)工作的時(shí)候,可能會(huì)導(dǎo)致Mysql的死鎖(deadlock),雖然不會(huì)影響爬蟲(chóng)的正常運(yùn)行,但是對(duì)爬蟲(chóng)的運(yùn)行效率會(huì)造成一定程度的影響。

        [1]李勇,韓亮.主題搜索引擎中網(wǎng)絡(luò)爬蟲(chóng)的搜索策略研究[J].計(jì)算機(jī)工程與科學(xué),2008,(3): 4-6.

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

        [3]孫立偉,何國(guó)輝,等.網(wǎng)絡(luò)爬蟲(chóng)技術(shù)的研究[J].電腦知識(shí)與技術(shù),2010,(15):4112-4115.

        [4]唐波.網(wǎng)絡(luò)爬蟲(chóng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2009,(11):2867-2868.

        [5]詹恒飛,楊岳湘,等.Nutch分布式網(wǎng)絡(luò)爬蟲(chóng)研究與優(yōu)化[J].計(jì)算機(jī)科學(xué)與探索, 2011,(1):68-74.

        (責(zé)任編校:宮彥軍)

        2016-08-26

        2015年永州市科技計(jì)劃項(xiàng)目(永科發(fā)[2015]9號(hào)No.22)。

        郭丙琴(1981-),女,廣西鹿寨人,研究方向?yàn)樾畔⒓夹g(shù)處理。

        TP393

        A

        1673-2219(2017)06-0021-02

        猜你喜歡
        頁(yè)面信息設(shè)計(jì)
        大狗熊在睡覺(jué)
        刷新生活的頁(yè)面
        瞞天過(guò)?!律O(shè)計(jì)萌到家
        設(shè)計(jì)秀
        海峽姐妹(2017年7期)2017-07-31 19:08:17
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        有種設(shè)計(jì)叫而專(zhuān)
        Coco薇(2017年5期)2017-06-05 08:53:16
        展會(huì)信息
        同一Word文檔 縱橫頁(yè)面并存
        淺析ASP.NET頁(yè)面導(dǎo)航技術(shù)
        設(shè)計(jì)之味
        舒適廣告(2008年9期)2008-09-22 10:02:48
        永久黄网站色视频免费看| 亚洲av乱码一区二区三区观影| 丝袜人妻中文字幕首页| 精品国产午夜肉伦伦影院| 免费人妻无码不卡中文字幕18禁| 精品2021露脸国产偷人在视频| av日本一区不卡亚洲午夜| 久久精品国产亚洲av影院毛片| 无码区a∨视频体验区30秒| 日韩精品无码一区二区三区视频 | 美女脱掉内裤扒开下面让人插| 少妇伦子伦精品无吗| 在线观看av永久免费| 免费无码黄网站在线观看| 日本一区二区三级在线| 国模吧无码一区二区三区| 18禁美女裸体网站无遮挡| 亚洲乱色视频在线观看| 亚洲国产av一区二区三区| 久久成人影院精品777| av鲁丝一区鲁丝二区| 精品国精品自拍自在线| 黄片视频免费在线观看国产| 精品国模一区二区三区| 亚洲视频高清| 成人自拍偷拍视频在线观看| 中文无码成人免费视频在线观看| 草草网站影院白丝内射| 蜜桃视频一区二区三区在线| 久久精品日本不卡91| 久久久久香蕉国产线看观看伊| 国产一级黄色录像| 懂色av一区二区三区网久久| 无码小电影在线观看网站免费| 人人妻人人澡av天堂香蕉| 青青草一级视频在线观看| 日韩精品视频久久一区二区| 色欲人妻综合网| 欧美日韩高清一本大道免费| 精品亚洲国产日韩av一二三四区 | 精品人妻少妇丰满久久久免|