• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于python的網(wǎng)絡(luò)爬蟲(chóng)技術(shù)的研究

      2019-09-10 20:25:57劉文輝李麗
      關(guān)鍵詞:分析

      劉文輝 李麗

      摘 要:面對(duì)數(shù)據(jù)大爆炸,人們很難獲取有用的信息。網(wǎng)絡(luò)爬蟲(chóng)技術(shù)成為了搜索引擎中最為重要的部分,能夠有效的在海量數(shù)據(jù)中找到有價(jià)值的信息。本論文從不同方面基于python的網(wǎng)絡(luò)爬蟲(chóng)技術(shù)的研究,希望為研究網(wǎng)絡(luò)爬蟲(chóng)技術(shù)的專家和學(xué)者提供理論參考依據(jù)。

      關(guān)鍵詞:python;網(wǎng)絡(luò)爬蟲(chóng)技術(shù);分析

      隨著我國(guó)社會(huì)化和移動(dòng)互聯(lián)網(wǎng)的逐步發(fā)展,網(wǎng)絡(luò)上的數(shù)據(jù)呈爆炸式增長(zhǎng)。數(shù)據(jù)大爆炸,導(dǎo)致了那些有需要的人們?cè)诰W(wǎng)上找他們所需的信息愈發(fā)的困難,由此搜索引擎根據(jù)這種需求產(chǎn)生了。這個(gè)時(shí)候我們需要搜索引擎去解決的困難,不僅僅是幫助人們從大量的數(shù)據(jù)里找到答案,還要在大量的答案里面找到人們最需要的結(jié)果,迅速快捷的找到精準(zhǔn)答案比找到很多無(wú)用答案更被人們所需要。搜素引擎要做什么呢?搜索引擎需要從海量數(shù)據(jù)中提取價(jià)值,即為數(shù)據(jù)挖掘。從本質(zhì)上看,搜索引擎是一個(gè)典型的大數(shù)據(jù)應(yīng)用。網(wǎng)絡(luò)爬蟲(chóng)技術(shù)在搜索引擎中,是很關(guān)鍵也很基礎(chǔ)的構(gòu)件。搜索引擎聚集了網(wǎng)絡(luò)中成千上萬(wàn)的信息網(wǎng)頁(yè),并為網(wǎng)頁(yè)中逐個(gè)詞建立索引。在人們?cè)O(shè)立搜索引擎的過(guò)程中,采集信息網(wǎng)頁(yè)是一個(gè)很重要的部分。爬蟲(chóng)程序就是用來(lái)搜集網(wǎng)頁(yè)的程序。網(wǎng)絡(luò)爬蟲(chóng)是搜索引擎中信息采集的部分,整個(gè)搜索引擎索引網(wǎng)頁(yè)的質(zhì)量、數(shù)量和更新周期,都會(huì)受網(wǎng)絡(luò)爬蟲(chóng)技術(shù)性能的影響。因此對(duì)于網(wǎng)絡(luò)爬蟲(chóng)的研究具有深遠(yuǎn)的意義。

      1 網(wǎng)絡(luò)爬蟲(chóng)以及網(wǎng)絡(luò)爬行

      網(wǎng)絡(luò)爬蟲(chóng)(Web Crawler)是搜索引擎的最基礎(chǔ)部分,主要是一個(gè)能夠下載網(wǎng)頁(yè)的計(jì)算機(jī)程序或者腳本,又被稱為網(wǎng)絡(luò)蜘蛛(Web Spider)。一般而言,網(wǎng)絡(luò)爬蟲(chóng)從種子集的URL 集合開(kāi)始運(yùn)行,先將 URL 放入一個(gè)有序隊(duì)列中,然后按照一定的順序?qū)?URL 取出,然后下載所對(duì)應(yīng)的頁(yè)面。經(jīng)過(guò)對(duì)網(wǎng)絡(luò)頁(yè)面的分析,獲取新的 URL,并將其放入有序隊(duì)列中,如此反復(fù),直到隊(duì)列為空或者是滿足停止爬行的條件,從而遍歷整個(gè)網(wǎng)絡(luò)。這便是網(wǎng)絡(luò)爬蟲(chóng)的運(yùn)行過(guò)程,稱為網(wǎng)絡(luò)爬行(Web Crawling)。

      2 網(wǎng)絡(luò)爬蟲(chóng)的分類

      網(wǎng)絡(luò)爬蟲(chóng)的分類比較多,根據(jù)其結(jié)構(gòu)和實(shí)現(xiàn)技術(shù)主要可以分為通用網(wǎng)絡(luò)爬蟲(chóng)、聚焦網(wǎng)絡(luò)爬蟲(chóng)、增量式網(wǎng)絡(luò)爬蟲(chóng)以及深層網(wǎng)絡(luò)爬蟲(chóng)四種,實(shí)際應(yīng)用中的網(wǎng)絡(luò)爬蟲(chóng)一般是多種及技術(shù)結(jié)合實(shí)現(xiàn)的。

      2.1通用網(wǎng)絡(luò)爬蟲(chóng)

      一般情況下,通用網(wǎng)絡(luò)爬蟲(chóng)對(duì)爬行頁(yè)面的順序要求不高,大多采用并行的工作方式,刷新頁(yè)面需要的時(shí)間比較長(zhǎng)。因此,通用網(wǎng)絡(luò)爬蟲(chóng)往往會(huì)采用一定的爬行策略來(lái)縮短爬行時(shí)間,比較常用的有深度優(yōu)先和廣度優(yōu)先兩種。深度優(yōu)先是指按照深度由低到高訪問(wèn)鏈接,直到無(wú)法再深入;廣度優(yōu)先是指首先爬行網(wǎng)頁(yè)的淺目錄內(nèi)容,然后爬行深目錄內(nèi)容。比較常見(jiàn)的通用網(wǎng)絡(luò)爬蟲(chóng)有 Mercator 和Google Crawler。Google Crawler 是一個(gè)分布式的爬蟲(chóng),它利用異步 I/O 來(lái)實(shí)現(xiàn)并行化,并且擁有獨(dú)立的進(jìn)程來(lái)維護(hù) URL 隊(duì)列,Google Crawler 還使用了PageRank 等多種算法來(lái)提高系統(tǒng)的性能。

      2.2聚焦網(wǎng)絡(luò)爬蟲(chóng)

      聚焦網(wǎng)絡(luò)爬蟲(chóng)能夠選擇性的爬行與預(yù)設(shè)主題相關(guān)的頁(yè)面。聚焦爬蟲(chóng)的爬行范圍小,能夠有效的節(jié)省網(wǎng)絡(luò)資源,并且頁(yè)面更新比較快。聚焦網(wǎng)絡(luò)爬蟲(chóng)的爬行策略主要由頁(yè)面的內(nèi)容評(píng)價(jià)以及連接的結(jié)構(gòu)評(píng)價(jià)決定。在基于內(nèi)容評(píng)價(jià)的爬行策略中,主要采用 Fish Search 算法來(lái)評(píng)價(jià)查詢頁(yè)面與查詢主題的相關(guān)度;在基于連接結(jié)構(gòu)評(píng)價(jià)的爬行策略中,主要 PageRank 算法來(lái)評(píng)價(jià)鏈接的重要性,具體就是優(yōu)先訪問(wèn) PageRank 值最大的頁(yè)面;在基于增強(qiáng)學(xué)習(xí)的爬行策略中,利用貝葉斯分類器對(duì)文本進(jìn)行分類,從而計(jì)算出不同鏈接的重要性,從而確定訪問(wèn)順序。

      2.3增量式網(wǎng)絡(luò)爬蟲(chóng)

      增量式網(wǎng)頁(yè)爬蟲(chóng)主要是對(duì)已經(jīng)下載的網(wǎng)頁(yè)進(jìn)行更新,只爬行更新的網(wǎng)頁(yè),從而保證刷新出的網(wǎng)頁(yè)是最新的。增量式網(wǎng)絡(luò)爬蟲(chóng)一般只在頁(yè)面需要時(shí)才會(huì)開(kāi)始爬行,不會(huì)重復(fù)下載沒(méi)有發(fā)生變化的網(wǎng)頁(yè),因此在很大程度上減少了網(wǎng)絡(luò)資源的浪費(fèi),但是算法比較復(fù)雜且實(shí)現(xiàn)難度比較大。

      3 基于Python的網(wǎng)絡(luò)爬蟲(chóng)分析

      3.1 Python語(yǔ)言的優(yōu)越性

      (1)方便簡(jiǎn)單,容易上手。Python幾乎能在所有的操作系統(tǒng)上運(yùn)行,很容易上手,初學(xué)者可以快速適應(yīng)。

      (2)Python是一個(gè)廣泛使用的腳本語(yǔ)言,其自帶了urllib、url-lib2等爬蟲(chóng)最基本的庫(kù),可以抓取Url的內(nèi)容。

      (3)Python擅長(zhǎng)處理字節(jié)流的各種模式,具有很好的開(kāi)發(fā)速度。

      3.2 Python網(wǎng)絡(luò)爬蟲(chóng)模塊

      3.2.1 Url管理模塊

      Url管理模塊的作用是管理Url,包括已經(jīng)被抓取的Url集合和還未被抓取的Url集合。Url管理模塊可以有效預(yù)防重復(fù)抓取循環(huán)抓取的問(wèn)題。

      Python中實(shí)現(xiàn)網(wǎng)址管理有三種途徑:

      (1)存儲(chǔ)在內(nèi)存中,針對(duì)于Url數(shù)據(jù)較少的情況。在Python中用Set()集合加以實(shí)現(xiàn),Set()可以消除重復(fù)數(shù)據(jù),避免重復(fù)抓取的問(wèn)題。

      (2)存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù),實(shí)現(xiàn)永久存儲(chǔ)。建立Url表,該表中有兩個(gè)字段,一個(gè)字段是Url地址,另一個(gè)字段用來(lái)表示Url是否被抓取。

      (3)存儲(chǔ)在緩存數(shù)據(jù)庫(kù)redis中,針對(duì)于Url數(shù)據(jù)較多的情況下。也可以用Set()集合來(lái)實(shí)現(xiàn),來(lái)存取“待爬”的Url地址和“已爬”的Url地址。

      3.2.2 網(wǎng)頁(yè)下載器

      網(wǎng)頁(yè)下載器將Url對(duì)應(yīng)的網(wǎng)頁(yè)下載到本地,將其存儲(chǔ)為字符串,以便接下來(lái)對(duì)數(shù)據(jù)進(jìn)行處理。

      Python支持的網(wǎng)頁(yè)下載工具有兩種:Python自身攜帶的urllib2模塊。urllib2針對(duì)于簡(jiǎn)單的網(wǎng)絡(luò)爬蟲(chóng),能夠完成網(wǎng)頁(yè)下載,提交用戶數(shù)據(jù),代理訪問(wèn),客戶登錄等多種功能。

      3.2.3 網(wǎng)頁(yè)解析器

      網(wǎng)頁(yè)解析器用來(lái)從網(wǎng)頁(yè)中提取從最初想要的數(shù)據(jù)。實(shí)則上提取的是兩部分:(1)Url列表;(2)目標(biāo)數(shù)據(jù)。Python中的網(wǎng)頁(yè)解析器有兩種類型:

      (1)利用正則表達(dá)式。正則表達(dá)式將網(wǎng)頁(yè)當(dāng)作字符串來(lái)處理,只適用于簡(jiǎn)單的網(wǎng)頁(yè)。一般網(wǎng)頁(yè)較為復(fù)雜時(shí),不采用此類方法。

      (2)基于網(wǎng)頁(yè)的DOM結(jié)構(gòu)。DOM樹(shù)是一種樹(shù)形標(biāo)簽結(jié)構(gòu)。網(wǎng)頁(yè)解析器會(huì)將HTML文檔當(dāng)成DOM樹(shù),對(duì)其進(jìn)行上下級(jí)結(jié)構(gòu)的遍歷來(lái)提取有用信息。使用樹(shù)形結(jié)構(gòu)可以對(duì)網(wǎng)頁(yè)中的具體信息來(lái)進(jìn)行定位,定位到具體的某個(gè)節(jié)點(diǎn)、屬性等。其中BeautifulSoup解析器功能強(qiáng)大,更為盛行。BeautifulSoup利用find_all()和find()方法來(lái)搜索節(jié)點(diǎn),find_all()可以查找所有符合查詢條件的標(biāo)簽節(jié)點(diǎn),并返回一個(gè)列表。find()方法查找符合查詢條件的第一個(gè)標(biāo)簽節(jié)點(diǎn)。用這兩種方法搜索節(jié)點(diǎn),提取有價(jià)值信息。

      參考文獻(xiàn)

      [1]大數(shù)據(jù)環(huán)境下的網(wǎng)絡(luò)爬蟲(chóng)設(shè)計(jì)[J].郭麗蓉.山西電子技術(shù).2018(02)

      [2]基于網(wǎng)絡(luò)爬蟲(chóng)技術(shù)的時(shí)令旅游信息獲取[J].鄭鑫臻,吳韶波.物聯(lián)網(wǎng)技術(shù).2018(05)

      [3]主題網(wǎng)絡(luò)爬蟲(chóng)抓取策略的研究[J].劉清.科技廣場(chǎng).2017(04)

      [4]網(wǎng)絡(luò)爬蟲(chóng)技術(shù)的研究與實(shí)現(xiàn)[J].繆治.中國(guó)新通信.2019(06)

      [5]基于匿名網(wǎng)絡(luò)的網(wǎng)絡(luò)爬蟲(chóng)設(shè)計(jì)與實(shí)現(xiàn)分析[J].劉煥欣.計(jì)算機(jī)產(chǎn)品與流通.2017(12)

      [6]主題網(wǎng)絡(luò)爬蟲(chóng)關(guān)鍵技術(shù)的應(yīng)用探討[J].楊凌云.電腦編程技巧與維護(hù).2018(11)

      [7]網(wǎng)絡(luò)爬蟲(chóng)技術(shù)在電力產(chǎn)業(yè)中的應(yīng)用[J].賀冠博,蘇宇琦,黃源.電子技術(shù)與軟件工程.2017(18)

      [8]一種新的主題網(wǎng)絡(luò)爬蟲(chóng)爬行策略[J].宋海洋,劉曉然,錢海俊.計(jì)算機(jī)應(yīng)用與軟件.2011(11)

      猜你喜歡
      分析
      隱蔽失效適航要求符合性驗(yàn)證分析
      電力系統(tǒng)不平衡分析
      電子制作(2018年18期)2018-11-14 01:48:24
      電力系統(tǒng)及其自動(dòng)化發(fā)展趨勢(shì)分析
      中西醫(yī)結(jié)合治療抑郁癥100例分析
      在線教育與MOOC的比較分析
      万盛区| 洛扎县| 广宁县| 湖南省| 滨州市| 漾濞| 安平县| 仙游县| 承德市| 宁远县| 比如县| 高清| 普陀区| 新郑市| 武隆县| 东方市| 佛坪县| 马鞍山市| 乌拉特前旗| 吴忠市| 日喀则市| 台北县| 海伦市| 石景山区| 安龙县| 都江堰市| 儋州市| 靖宇县| 昌图县| 大英县| 哈巴河县| 增城市| 滦南县| 泽普县| 阿拉善右旗| 日土县| 克东县| 淮滨县| 谢通门县| 库伦旗| 郸城县|