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

        ?

        目前互聯(lián)網中的網絡爬蟲的原理和影響

        2019-12-20 19:30:04趙鑫煒
        數(shù)碼設計 2019年5期
        關鍵詞:爬蟲搜索引擎網頁

        趙鑫煒

        (四川大學錦城學院計算機與軟件學院 四川 成都 611731)

        目前,網絡爬蟲技術(Web Crawler)已經應用于互聯(lián)網的絕大多數(shù)地方。其體現(xiàn)為有搜索行為發(fā)生的時刻也就意味著爬蟲技術正在應用,但是搜索引擎僅是爬蟲技術其中一個應用點。爬蟲技術的應用場景簡而言之就是就是把在網頁上顯示的信息通過代碼技術自動獲取處理需要的信息到本地的過程,這種行為也就建立信息獲得者與被信息被獲得者的利弊關系。

        1 網絡爬蟲實現(xiàn)原理

        1.1 網絡爬蟲技術語言的選擇

        應用的與爬蟲技術目前主流的分別是C\C++,java和python,三者都是實現(xiàn)網絡爬蟲十分成熟的語言。目前互聯(lián)網中主流的搜索引擎都是采用了C\C++編寫爬蟲,擁有cspider等框架,c/c++不失作為最高效的爬蟲語言之一,但學習成本和實現(xiàn)成本高昂。Java作為一個老牌主流語言在爬蟲的實現(xiàn)方面已有較為成熟的框架SeimiCrawler、WebMagic等,有著優(yōu)秀的線程進程管理機制,同時也能夠適應較為負責的爬蟲設計。

        Python作為一門最近興起的語言擁有強大的庫支持和穩(wěn)定的線程,進程模式,這使python也成為編寫爬蟲較為主流的語言。其它語言例如php等因為糟糕的線程機制或過于小眾實現(xiàn)成本太高而沒有成為目前爬蟲技術的主流選擇。

        1.2 網絡爬蟲的基本流程

        一個網絡爬蟲所需完成最基本的工作[1]如下:(1)在一個網頁上,獲取網頁的標題和網頁中的摘要;(2)將搜集到的網頁標題,鏈接,網頁的摘要放入數(shù)據庫中;(3)根據當前網頁的內容,搜集網頁中的鏈接信息,并根據鏈接順序搜索相應鏈接網頁的內容。

        首先明確在流程中所需要的必要幾個關鍵點(1)url統(tǒng)一資源定位符:為爬蟲指明就提需要獲取資源在互聯(lián)網中的地址(2)網頁請求:在用戶的正常操作時候點擊一個鏈接向服務器發(fā)送了一個請求(request),這個請求傳到服務器邏輯處理過后又向用戶發(fā)送了一個客戶端所需要的響應信息(response),在爬蟲技術里就需要通過代碼來模擬請求和處理返回的響應信息獲得目標信息(3)DOM解析:實際上在客戶端與服務器上傳輸?shù)牟皇怯脩艨吹降木W頁頁面,而是一組由服務器組裝好包含目標數(shù)據的代碼,這些代碼通過瀏覽器DOM樹渲染成客戶端的頁面,DOM文檔中包含了目標數(shù)據。

        一個完整的爬蟲程序流程:首先通過(1)根據構造一個已知的url向服務器發(fā)送網頁請求(2)正確請求到需要的響應信息,否則回到第一步發(fā)送正確網絡請求(3)對返回的響應信息進行DOM解析,重復第一步構造新的url判進行新的網頁請求(4)對DOM文檔數(shù)據進行過濾獲得目標信息并保存到本地。

        基于java實現(xiàn)上述流程至少需要一個啟動爬蟲項目的Crawler啟動類、一個用于實現(xiàn)多線程的MultithreadCrawler類、urlLinks類、一個用來發(fā)送請求和響應RequestAndResponse類、一個用來獲取響應信息內容ResponseData類、一個用來過濾提取響應信息的DataDetector類。實現(xiàn)過程為在UrlLinks類里使用Set來存放url和一個LinkedList設置需要訪問的url序列,MultithreadCrawler中Thread方法實現(xiàn)多線程提高效率,RequestAndResponse類中使用HttpClient方法根據構造好的url向服務器發(fā)送實際請求,ResponseData檢查返回的響應信息是否是我們需要的數(shù)據并決定是否繼續(xù)請求,DataDetector使用cssSelector選擇需要的元素并通過正則表達等方法獲取到需要的信息。這是在最理想的情況下使用爬蟲技術獲取到最簡單的數(shù)據,在實際操作中更多復雜的情況產生。

        1.3 網絡爬蟲的技術難點

        本文在爬蟲流程所述第一步構造url就是爬蟲設計者需要攻克的第一個方向,絕大多數(shù)目標資源都無法直接獲得url。爬蟲技術本身就是一個極其耗費網絡帶寬和機器資源的程序,這也要求設計者良好的控制爬蟲程序的多線程控制。對爬取程序的算法的設計,爬蟲算法 有廣度優(yōu)先策略(BFS)、深度優(yōu)先策略(DFS)、非完全PageRank策略(Partial PageRank)、OCIP策略(Online Page Importance Computation)等,從而影響爬取的整律回報率,決定了網絡爬蟲得到全局范圍內的最優(yōu)結果。在獲取到網頁響應信息后還需要正確的解析提取。

        2 爬蟲技術的博弈

        2.1 網絡爬蟲的現(xiàn)狀

        網絡爬蟲的根據功能分類中可以分為網頁類爬蟲和接口類爬蟲。前者是被搜索引擎所用,原理是根據互聯(lián)網上的鏈接進行遍歷獲取網頁。后者是根據特定的接口構造精準的API獲取大量目標數(shù)據,例如第三方火車票、機票購票軟件就是通過特點API獲取到票務信息。

        根據具體引用的不同又分為三類[2],批量型爬蟲(Batch Crawler)、增量型爬蟲(Incremental Crawler)和垂直型爬蟲(Focused Crawler)。批量型爬蟲主要是適應于小型需求用來爬取設定好范圍目標特定目標的資源,例如目前的為保持實時更新的搜索引擎。垂直型爬蟲應用于在一個大范圍爬取目標里面精確爬取到目標從而節(jié)省資源,例如需要在商城中爬取到所有有關計算機硬件的商品。

        根據爬蟲是意圖可以分為善意型和惡性型。善意型爬蟲主要是被爬取方希望被此爬蟲收錄或者雙方擁有合作協(xié)議,諸多著名搜索引擎就是一個善意的網絡爬蟲,也有部分擁有合作協(xié)議的雙方利用爬蟲進行雙方數(shù)據庫補全、數(shù)據交換等。惡意爬蟲主要是未授權的第三方爬取目標資源的爬蟲程序,主要可以應用于商業(yè)數(shù)據分析競爭,數(shù)據庫惡意獲取等,惡意爬蟲不光會對被爬取方造成帶寬服務器等硬件負擔還會盜取到更有價值的商業(yè)信息。

        2.2 網絡爬蟲的攻防

        在互聯(lián)網中爬蟲于反爬蟲技術之間的攻防時時刻刻都在發(fā)生,本小節(jié)將介紹幾種較為常見的爬蟲攻防策略。

        (1)首先爬蟲實際是在代碼層面進行網頁請求,此時網站可以檢測訪問者是否是瀏覽器訪問從而封堵部分爬蟲,爬蟲同時也可以偽造自己的請求頭為自己訪問添加一個User-Agent使網站判斷自己為網頁訪問。(2)對用戶的操作彈出驗證碼驗證,普通的爬蟲會不斷根據爬蟲設計者的設計重復的爬取當網站檢測到大量的重復請求后會彈出驗證碼驗證訪問者是否是機器,而爬蟲可以借助更多的算法設計來識別當前驗證碼并自動填入后繼續(xù)爬取或借助第三方打碼平臺填入驗證碼。(3)對于有價值的數(shù)據設定登錄可訪問,網站一般會通過儲存在客戶端的cookies、token和session來判斷當前用戶,爬蟲程序當然也可以通過更復雜的方法來偽造這些信息。(4)網站從服務器返回一組加密過的字段通過前端復雜的JavaScript來解析這些字段正常顯示,爬蟲也就需要強大是js功力來逆向模擬這些js處理。(5)由于爬蟲程序是在同一ip地址下大批量訪問,網站會檢測同一個ip的訪問頻率阻止爬蟲,爬蟲程序此時可以購買更多的ip地址組成ip池來應對。

        3 結語

        本文闡述了目前網絡爬蟲的基本原理,實現(xiàn)爬蟲技術所需要的關鍵技術點和技術難點,在基于java語言實現(xiàn)的一個基本網絡爬蟲流程。分析了主要爬蟲的幾種分類方法和實例,在目前爬蟲技術在網絡中出現(xiàn)博弈現(xiàn)象和幾種主要的攻防策略體現(xiàn)。當今數(shù)據爆炸時代,數(shù)據就像一個鉆石礦,當它的首要價值被發(fā)掘后仍能不斷給予[2],爬蟲技術就是為了獲取這些數(shù)據而生,爬蟲技術的發(fā)展和博弈會將日益突出。

        猜你喜歡
        爬蟲搜索引擎網頁
        利用網絡爬蟲技術驗證房地產灰犀牛之說
        基于Python的網絡爬蟲和反爬蟲技術研究
        基于CSS的網頁導航欄的設計
        電子制作(2018年10期)2018-08-04 03:24:38
        利用爬蟲技術的Geo-Gnutel la VANET流量采集
        電子測試(2018年1期)2018-04-18 11:53:04
        基于URL和網頁類型的網頁信息采集研究
        電子制作(2017年2期)2017-05-17 03:54:56
        網頁制作在英語教學中的應用
        電子測試(2015年18期)2016-01-14 01:22:58
        網絡搜索引擎亟待規(guī)范
        基于Heritrix的主題爬蟲在互聯(lián)網輿情系統(tǒng)中應用
        基于Nutch的醫(yī)療搜索引擎的研究與開發(fā)
        10個必知的網頁設計術語
        日本人妻av在线观看| 欧美日韩视频无码一区二区三| 欧美精品一区二区性色a+v| 亚洲国产日韩欧美高清片a| 色男色女午夜福利影院| 国产日产亚洲系列最新| 国产乱人伦av在线无码| 国产成人久久精品激情91| 亚洲中文字幕一区二区三区多人| 欧洲熟妇色xxxx欧美老妇软件| 日韩a无v码在线播放| 久久精品国产热久久精品国产亚洲 | 无码人妻丝袜在线视频| 亚洲丝袜美腿精品视频| 久久久久人妻精品一区三寸| 欧美精品久久久久久久自慰| 国产精品无码久久AⅤ人妖| 精品一区二区三区久久| 亚洲国产av玩弄放荡人妇| 欧洲在线一区| 日韩美女人妻一区二区三区 | 能看不卡视频网站在线| 亚洲日韩精品无码av海量| 久久久久国产精品免费免费搜索| aⅴ色综合久久天堂av色综合| 中国男男女在线免费av| 日韩欧美成人免费观看| 国产在线精品一区二区在线看| 国产猛男猛女超爽免费av| 人人妻人人澡人人爽人人dvd| 亚洲精品综合一区二区三| 亚洲AV无码一区二区水蜜桃| 精品国产亚洲第一区二区三区| 中文字幕无线码| 日韩欧美国产自由二区| 国产在线观看一区二区三区av| √天堂中文官网在线| 国产精品美女久久久久久2018| 成人免费毛片在线播放| 亚洲人成网站在线播放2019 | 亚洲日韩av一区二区三区中文|