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

        ?

        一種基于python語(yǔ)言的網(wǎng)絡(luò)爬蟲研究

        2016-10-21 02:26:00劉洋崔翠李立新
        科學(xué)與財(cái)富 2016年9期
        關(guān)鍵詞:網(wǎng)絡(luò)爬蟲敏感數(shù)據(jù)搜索引擎

        劉洋 崔翠 李立新

        摘要:隨著Internet技術(shù)的不斷發(fā)展,互聯(lián)網(wǎng)已經(jīng)成為人們獲取信息的主要途徑,搜索引擎從互聯(lián)網(wǎng)中靶向性篩選出有用信息,而網(wǎng)絡(luò)爬蟲又是搜索引擎的基礎(chǔ)構(gòu)件之一。本文實(shí)現(xiàn)了一個(gè)基于python語(yǔ)言的并行網(wǎng)絡(luò)爬蟲,利用關(guān)鍵字匹配技術(shù)對(duì)目標(biāo)網(wǎng)站進(jìn)行掃描,得到敏感數(shù)據(jù)并抓取,分析網(wǎng)站數(shù)據(jù)結(jié)構(gòu)和受惡意攻擊的風(fēng)險(xiǎn)系數(shù)。

        關(guān)鍵詞:搜索引擎 網(wǎng)絡(luò)爬蟲 python 敏感數(shù)據(jù)

        1引言

        網(wǎng)絡(luò)爬蟲(Crawler)是搜索引擎(search engine SE)的基本構(gòu)件之一,其直接面向互聯(lián)網(wǎng)底層,它是搜索引擎的數(shù)據(jù)發(fā)源地,決定著整個(gè)系統(tǒng)的內(nèi)容是否豐富、信息能否得到及時(shí)更新。它的性能表現(xiàn)直接影響整個(gè)搜索引擎的效果。網(wǎng)絡(luò)爬蟲的工作原理如下:從一個(gè)初始種子URLs出發(fā),從中獲取一個(gè)URL,下載網(wǎng)頁(yè),從網(wǎng)頁(yè)中抽取所有的URLs,并將新的URLs添加到URLs隊(duì)列中。然后,Crawler從隊(duì)列中獲取另一個(gè)URL。重復(fù)剛才的過(guò)程,直到Crawler達(dá)到某種停止標(biāo)準(zhǔn)為止。

        搜索引擎以一定的策略在互聯(lián)網(wǎng)中搜集、發(fā)現(xiàn)信息,對(duì)信息進(jìn)行理解、提取、組織和處理,并為用戶提供檢索服務(wù),從而起到信息導(dǎo)航的目的。我們經(jīng)常看到不同的網(wǎng)站發(fā)布著同樣的新聞,很多就是通過(guò)網(wǎng)絡(luò)爬蟲的技術(shù)從其它的網(wǎng)站爬取信息,然后放在自己的網(wǎng)站發(fā)布。同樣,這樣的爬蟲技術(shù)也可以用來(lái)幫助我們做安全掃描分析等工作,這也是本文研究的重點(diǎn)。

        2國(guó)內(nèi)外研究現(xiàn)狀及相關(guān)核心技術(shù)

        2.1現(xiàn)狀

        90年代出現(xiàn)了最早的搜索引擎,也就產(chǎn)生了網(wǎng)絡(luò)爬蟲。此時(shí)的爬蟲在爬取整個(gè)網(wǎng)絡(luò)的時(shí)候采取深度或廣度優(yōu)先的遍歷方式。作為搜索引擎的信息資源采集的重要角色,網(wǎng)絡(luò)爬蟲的性能將直接影響整個(gè)搜索引擎索引網(wǎng)頁(yè)的數(shù)量、質(zhì)量和更新周期。于是出現(xiàn)后面的分布式網(wǎng)絡(luò)爬蟲。分布式網(wǎng)絡(luò)爬蟲可以看做是由多個(gè)集中式網(wǎng)絡(luò)爬蟲組合而成,分布式系統(tǒng)中的每個(gè)節(jié)點(diǎn)都可以看作一個(gè)集中式網(wǎng)絡(luò)爬蟲。分布式網(wǎng)絡(luò)爬蟲大大提高了爬取效率,目前分布式網(wǎng)絡(luò)爬蟲已近有了不少的應(yīng)用,例如現(xiàn)在著名的Google和Alta Vista搜索引擎所采用的網(wǎng)絡(luò)爬蟲系統(tǒng)。

        由于爬蟲的重要性,Twisted使用python語(yǔ)言寫了一個(gè)廣受歡迎的爬蟲事件驅(qū)動(dòng)網(wǎng)絡(luò)框架:scrapy,scrapy使用的是非堵塞的異步處理方式。scrapy能夠爬取web頁(yè)面,并從頁(yè)面中提取結(jié)構(gòu)化的數(shù)據(jù)。它可以用來(lái)數(shù)據(jù)挖掘、監(jiān)測(cè)、和自動(dòng)化測(cè)試。

        scrapy流程圖見圖1。

        2.2 Python

        本系統(tǒng)用python腳本語(yǔ)言開發(fā),python腳本語(yǔ)言與其它編程語(yǔ)言相比的優(yōu)勢(shì)在于它的語(yǔ)法簡(jiǎn)單、系統(tǒng)庫(kù)強(qiáng)大、實(shí)現(xiàn)功能容易、高效率的高層數(shù)據(jù)結(jié)構(gòu)、簡(jiǎn)單的面向?qū)ο缶幊?、代碼結(jié)構(gòu)清晰易懂。如今python語(yǔ)言被廣泛的應(yīng)用于系統(tǒng)后臺(tái)處理和web編程。由于python腳本語(yǔ)言有著這么多的優(yōu)勢(shì),所以通過(guò)python腳本語(yǔ)言自己實(shí)現(xiàn)了一個(gè)爬蟲、敏感文件掃描和日志分析程序。爬蟲通過(guò)任務(wù)隊(duì)列、線程池實(shí)現(xiàn)多線程并發(fā)爬取網(wǎng)頁(yè),在爬取了網(wǎng)頁(yè)之后對(duì)網(wǎng)頁(yè)進(jìn)行解碼分析,獲取目錄結(jié)構(gòu),對(duì)已知的目錄結(jié)構(gòu)進(jìn)行敏感文件掃描。同時(shí)也通過(guò)腳本程序利用攻擊規(guī)則庫(kù)對(duì)用戶請(qǐng)求的web日志進(jìn)行安全分析,提取出日志中的sql注入攻擊,xss跨站腳本攻擊,可以利用這些方法發(fā)現(xiàn)網(wǎng)站的安全漏洞。

        2.3并行爬蟲技術(shù)

        由于WEB網(wǎng)站群結(jié)構(gòu)層次多,目錄深度廣,數(shù)據(jù)量很大,單進(jìn)程的爬蟲很難滿足快速抓取大量數(shù)據(jù)的要求,因此本文爬蟲進(jìn)行了并行架構(gòu)的擴(kuò)展,實(shí)現(xiàn)了基于MPI的并行數(shù)據(jù)抓取功能。本文并行爬蟲主要采用主從模式,主節(jié)點(diǎn)負(fù)責(zé)維護(hù)整個(gè)爬蟲的抓取隊(duì)列以及任務(wù)分配工作,從節(jié)點(diǎn)負(fù)責(zé)對(duì)自己的任務(wù)列表按照第l章中的抓取規(guī)則進(jìn)行數(shù)據(jù)抓取。每個(gè)從節(jié)點(diǎn)都需要維護(hù)兩個(gè)隊(duì)列,一個(gè)是任務(wù)隊(duì)列,另一個(gè)是新用戶隊(duì)列。當(dāng)從節(jié)點(diǎn)完成了其任務(wù)隊(duì)列后會(huì)將自己的新用戶隊(duì)列交給主節(jié)點(diǎn),由主節(jié)點(diǎn)來(lái)處理合并用戶的工作,同時(shí),主節(jié)點(diǎn)會(huì)將新的任務(wù)隊(duì)列發(fā)送到從節(jié)點(diǎn),由從節(jié)點(diǎn)繼續(xù)抓取新數(shù)據(jù)。

        3系統(tǒng)設(shè)計(jì)與試驗(yàn)分析

        3.1系統(tǒng)功能模塊

        本系統(tǒng)主要分為三個(gè)模塊。整個(gè)系統(tǒng)功能模塊結(jié)構(gòu)見圖2。

        3.1.1程序主模塊和線程池模塊

        程序主模塊的主要功能是web爬取。通過(guò)用戶提供的初始URL開始爬取。

        線程池決定著整個(gè)程序的執(zhí)行效率,創(chuàng)建太多的線程,有些線程又有可能未被充分的利用,程序?qū)?huì)浪費(fèi)一定的資源。銷毀太多線程,將導(dǎo)致之后浪費(fèi)時(shí)間再次創(chuàng)建它們。創(chuàng)建線程太慢,將會(huì)導(dǎo)致長(zhǎng)時(shí)間的等待,性能變差。銷毀線程太慢,將導(dǎo)致其它線程資源饑餓。所以在程序的開發(fā)中,線程池相當(dāng)?shù)闹匾?,?yīng)做到合理有效的利用。

        線程池模塊主要是用來(lái)創(chuàng)建線程,加載爬蟲模塊中的爬取url任務(wù)到任務(wù)隊(duì)列,每個(gè)線程從任務(wù)隊(duì)列中獲取任務(wù)并執(zhí)行任務(wù)。

        3.1.2敏感文件掃描模塊

        網(wǎng)站中的敏感文件是不應(yīng)被普通用戶查看的,通常這些敏感文件一旦被暴露出來(lái)則有可能泄露服務(wù)器的一些敏感信息,比如用戶名、密碼、源代碼、服務(wù)器信息、配置信息等。還有一些敏感文件則可能是網(wǎng)站的后臺(tái)管理員管理地址,一些已經(jīng)公開有漏洞的編輯器。這些都能被攻擊者所利用,進(jìn)而對(duì)網(wǎng)站實(shí)施攻擊,獲得網(wǎng)站控制權(quán)。

        3.2試驗(yàn)分析

        用戶通過(guò)爬蟲的入口向程序提供需要爬取的目標(biāo),爬取的深度和使用多少個(gè)線程爬取,如果沒(méi)有定義線程數(shù),程序會(huì)初始化為9個(gè)線程爬取。程序?qū)⑴廊〉玫降木W(wǎng)頁(yè)類容進(jìn)行解碼分析,提取出里面的URL,并將這些URL做一些處理后加入隊(duì)列進(jìn)行下一步爬取。目標(biāo)爬取完畢之后會(huì)將結(jié)果保存下來(lái),然后再調(diào)用敏感文件掃描模塊對(duì)這些目錄下進(jìn)行敏感文件掃描,對(duì)于存在的敏感文件會(huì)將結(jié)果保存下來(lái)。

        3.2.1目標(biāo)網(wǎng)頁(yè)爬取

        在目標(biāo)爬取的測(cè)試過(guò)程中,程序在獲得一個(gè)目標(biāo)站點(diǎn)后開始進(jìn)行爬取。首先將這個(gè)目標(biāo)url加入urlQueue隊(duì)列中,在start函數(shù)中從urlQueue隊(duì)列中獲取第一個(gè)url,隨后調(diào)用線程中addJob函數(shù)將url和工作work函數(shù)同時(shí)加入線程池任務(wù)隊(duì)列中。此時(shí)線程從線程池任務(wù)隊(duì)列中獲取任務(wù),也就是獲取到的url和work函數(shù),隨后線程開始開始執(zhí)行work函數(shù),work函數(shù)中開始對(duì)url進(jìn)行爬取,將url加入已爬取的任務(wù)隊(duì)列readUrls中。爬取方法是調(diào)用requests模塊中的get函數(shù)對(duì)目標(biāo)進(jìn)行網(wǎng)頁(yè)抓?。?/p>

        html=requests.get(url),此方法返回一個(gè)html對(duì)象。

        該對(duì)象中的content屬性為網(wǎng)頁(yè)內(nèi)容:htmldata=html.content。

        接下來(lái)是對(duì)返回的網(wǎng)頁(yè)內(nèi)容進(jìn)行解析分析,本程序采用的是python的第三方模塊Beautiful Soup對(duì)其解析。Beautiful Soup 是用python 寫的一個(gè) HTML/XML 的解析器,它可以很好的處理不規(guī)范標(biāo)記并生成剖析樹。通常用來(lái)分析爬蟲抓取到的web文檔。對(duì)于不規(guī)則的 Html文檔,也有很多的補(bǔ)全功能,節(jié)省了開發(fā)者的時(shí)間和精力。通過(guò)Beautiful Soup對(duì)htmldata解析:

        接著遍歷allurl列表,如果列表中的鏈接沒(méi)有在readUrls中,就將其加入urlQueue隊(duì)列中。如此循環(huán)操作,直到最后達(dá)到爬取的深度停止任務(wù),完成網(wǎng)頁(yè)爬取。

        爬取結(jié)果如圖3。

        3.2.2敏感文件掃描

        實(shí)現(xiàn)方法是通過(guò)python中requests類中g(shù)et函數(shù)對(duì)url進(jìn)行請(qǐng)求,通過(guò)http請(qǐng)求返回的狀態(tài)碼來(lái)識(shí)別url是否存在。

        圖4是定義好的部分敏感文件信息。

        在利用獲取到的網(wǎng)站目錄結(jié)構(gòu)進(jìn)行敏感文件掃描,對(duì)黑名單中的文件進(jìn)行一一掃描,能夠?qū)⒋嬖诘拿舾形募呙璩鰜?lái),識(shí)別http狀態(tài)碼結(jié)果為200,該功能已經(jīng)很好的實(shí)現(xiàn)。掃描結(jié)果如圖5。

        結(jié) 語(yǔ)

        本文設(shè)計(jì)的并行網(wǎng)絡(luò)爬蟲通過(guò)將網(wǎng)頁(yè)表單進(jìn)行分類和檢索提交,在這個(gè)爬蟲的基礎(chǔ)上實(shí)現(xiàn)一些安全分析的工作,最終可以發(fā)現(xiàn)并下載更多的網(wǎng)頁(yè)內(nèi)容和檢測(cè)更多的網(wǎng)站數(shù)據(jù)漏洞。實(shí)驗(yàn)結(jié)果表明,和普通的網(wǎng)絡(luò)爬蟲相比,并行爬蟲產(chǎn)生的索引文件更大,可以檢索到更多的結(jié)果。其主要有以下幾個(gè)特點(diǎn):

        1)使用方便。使用者只需提供相似關(guān)鍵字,就能利用一般爬蟲抓取網(wǎng)站中的相關(guān)數(shù)據(jù)。

        2)支持關(guān)鍵字匹配。使用者只需自定義感興趣的關(guān)鍵字爬蟲就能自動(dòng)匹配相關(guān)內(nèi)容并將符合條件的網(wǎng)站內(nèi)容和目錄保存到磁盤之上。

        3)支持并行爬蟲。對(duì)于需要集群式的網(wǎng)站數(shù)據(jù),同時(shí)又需要快速獲取數(shù)據(jù)的用戶而言使用其并行功能,可以達(dá)到令人滿意的效果。

        然而,由于并行爬蟲需要提取網(wǎng)頁(yè)中的表單并進(jìn)行分類、提交以及頁(yè)面緩存和狀態(tài)保持,這些都需要更多的時(shí)間和系統(tǒng)資源。因此,如何盡量減少額外的系統(tǒng)資源消耗以適合大規(guī)模爬行需要進(jìn)行進(jìn)一步的研究。另外,雖然并行爬蟲發(fā)現(xiàn)了更多的網(wǎng)頁(yè),但是它并沒(méi)有發(fā)現(xiàn)所有的深度網(wǎng)頁(yè),這是由于其所依據(jù)的決策樹無(wú)法正確地對(duì)某些表單進(jìn)行分類。而決策樹的準(zhǔn)確性取決于訓(xùn)練實(shí)例的特點(diǎn)和決策樹生成算法,所以,選擇更合理的訓(xùn)練樣本和更合適的決策樹生成算法應(yīng)該是可行的。

        參考文獻(xiàn):

        [1]WELCH M J,SCHONFELD U,HE D,et al.Topical semantics of twitter links【C】//Proceedings of the Fourth ACM International Conference 0n Web Search and Data Mining. New York: ACM Press.2011:327—336.

        [2] Sismanis Y,Deligiannakis A.Dwarf K Y.Shrinking the petacube[A].Proc ACM SIGMOD[C],Madison.Wisomin.2002 464—475

        [3] ChunWJ, 吉廣. Python 核心編程[M].人民郵電出版社, 2008.

        [4]Boldi P,Codenotti B.Santini M.UbiCrawler:A Scalable Fully Distributed Web Crawler[J].Software:Practice&Experience。2004,34:711-726

        [5]Lee Hsin-Tsang,Leonard D.IRLbot:Scaling to 6 BillionPages and Beyond[A]//Proceedings of the 17th International World Wide Web Conference[C].ACM Press,2008:427—436

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

        [7] 張紅云, 劉煒, 熊前興. 一種基于語(yǔ)義本體的網(wǎng)絡(luò)爬蟲模型[J].計(jì)算機(jī)應(yīng)用與軟件,2009, 26(11): 101-104.

        [8] 劉世濤. 簡(jiǎn)析搜索引擎中網(wǎng)絡(luò)爬蟲的搜索策略[J]. 阜陽(yáng)師范學(xué)院學(xué)報(bào): 自然科學(xué)版, 2006,23(3):59-62.

        猜你喜歡
        網(wǎng)絡(luò)爬蟲敏感數(shù)據(jù)搜索引擎
        干擾條件下可檢索數(shù)字版權(quán)管理環(huán)境敏感數(shù)據(jù)的加密方法
        實(shí)現(xiàn)虛擬機(jī)敏感數(shù)據(jù)識(shí)別
        基于透明加密的水下通信網(wǎng)絡(luò)敏感數(shù)據(jù)防泄露方法
        基于4A平臺(tái)的數(shù)據(jù)安全管控體系的設(shè)計(jì)與實(shí)現(xiàn)
        煉鐵廠鐵量網(wǎng)頁(yè)數(shù)據(jù)獲取系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
        基于社會(huì)網(wǎng)絡(luò)分析的權(quán)威網(wǎng)頁(yè)挖掘研究
        主題搜索引擎中網(wǎng)絡(luò)爬蟲的實(shí)現(xiàn)研究
        淺析如何應(yīng)對(duì)網(wǎng)絡(luò)爬蟲流量
        網(wǎng)絡(luò)搜索引擎亟待規(guī)范
        基于Nutch的醫(yī)療搜索引擎的研究與開發(fā)
        日本成人午夜一区二区三区 | 免费观看在线一区二区| 人妻有码av中文幕久久| 777精品出轨人妻国产| 精品国产乱码久久久软件下载 | 中文字幕人妻互换av| 精品欧洲av无码一区二区14| 亚洲女人被黑人巨大进入| 中文字幕亚洲综合久久| 国产av一卡二卡日韩av| 亚洲性无码一区二区三区| 欧美人与物videos另类xxxxx| 女人被躁到高潮嗷嗷叫免费软| 东京热加勒比视频一区| 色欲aⅴ亚洲情无码av| 国产目拍亚洲精品一区二区| 亚洲国产免费公开在线视频| 99国产精品久久一区二区三区| 久久国产亚洲高清观看| 特级黄色毛片视频| 国产目拍亚洲精品二区| 亚洲成av人片女在线观看| 久久久久亚洲精品无码网址色欲| 国产成人精品曰本亚洲| 亚洲一区二区三区福利久久蜜桃 | 麻豆国产精品久久人妻| 亚洲av无码1区2区久久| 乱色视频中文字幕在线看| 久久久精品国产亚洲av网麻豆| 内射合集对白在线| 日韩国产一区| 麻豆视频在线观看免费在线观看| 国产欧美日韩中文久久| 处破痛哭a√18成年片免费| 一区二区三区国产97| 99久久99久久久精品蜜桃| 精品国产乱码久久久久久影片| 在线无码国产精品亚洲а∨| 日韩极品在线观看视频| 国产高潮视频在线观看| 亚洲小说图区综合在线|