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

        ?

        基于大數(shù)據(jù)環(huán)境下Python的爬蟲技術(shù)的應(yīng)用

        2020-09-10 08:25:16許會(huì)芳
        看世界·學(xué)術(shù)上半月 2020年12期
        關(guān)鍵詞:頁面信息

        許會(huì)芳

        摘要:大數(shù)據(jù)背景下,無法使用常規(guī)的工具進(jìn)行數(shù)據(jù)挖掘、處理和管理數(shù)據(jù),但每個(gè)行業(yè)每天都有大量的數(shù)據(jù)產(chǎn)生,如何得到這些數(shù)據(jù),就需要有新處理方式才具有更強(qiáng)的處理能力、優(yōu)化能力來處理浩瀚的數(shù)據(jù)。現(xiàn)在網(wǎng)絡(luò)上的很多數(shù)據(jù)都是雜亂的,都需要挖掘、清洗、分析,整理后,才能滿足實(shí)際的運(yùn)用,雖然現(xiàn)在有很多優(yōu)秀的搜索引擎,但是還是不能滿足各行業(yè)對(duì)數(shù)據(jù)的捕捉、搜索等要求。目前,使用網(wǎng)絡(luò)爬蟲工具能自動(dòng)完成數(shù)據(jù)挖掘,清洗等工作,很大程度上提了工作效率。

        關(guān)鍵詞:原理;爬蟲;數(shù)據(jù)分析

        中圖分類號(hào):TP96? ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A

        一、相關(guān)概念及原理

        (一)大數(shù)據(jù)技術(shù)

        “大數(shù)據(jù)”一詞指的是不斷增長的大型數(shù)據(jù)集,其中包括異構(gòu)格式:結(jié)構(gòu)化、非結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)。大數(shù)據(jù)具有復(fù)雜性,需要強(qiáng)大的技術(shù)和先進(jìn)的算法。因此,傳統(tǒng)的靜態(tài)商業(yè)智能工具在大數(shù)據(jù)應(yīng)用中已不再有效。大多數(shù)數(shù)據(jù)科學(xué)家和專家對(duì)大數(shù)據(jù)的定義主要有以下三個(gè)特征(稱為3Vs):①Volume:海量的數(shù)字?jǐn)?shù)據(jù)不斷地從數(shù)以百萬計(jì)的設(shè)備和應(yīng)用程序(智能手機(jī)、產(chǎn)品代碼、社交網(wǎng)絡(luò)、傳感器、日志等)中生成。McAfeeetal.(2012)估計(jì)2012年每天大約產(chǎn)生2.5艾字節(jié)[1]。這個(gè)數(shù)字大約每40個(gè)月翻一番。2013年,據(jù)一家國際數(shù)據(jù)公司發(fā)布的研究報(bào)告估計(jì),創(chuàng)建、復(fù)制和使用的數(shù)字?jǐn)?shù)據(jù)總量為4.4Zettabytes(ZB),每兩年翻一番。到2015年,數(shù)字?jǐn)?shù)據(jù)增長到8ZB(Rajaraman,2016)。根據(jù)IDC(Internetdatacenter)的報(bào)告,到2020年,數(shù)據(jù)量將達(dá)到驚人的40Zeta字節(jié),是當(dāng)前數(shù)據(jù)量的400倍。②Velocity:數(shù)據(jù)生成速度快,需要快速處理,提取有用信息和相關(guān)知識(shí)。例如,沃爾瑪(一家國際折扣零售連鎖企業(yè))每小時(shí)從客戶交易中產(chǎn)生2.5PB以上的數(shù)據(jù)。YouTube也是一個(gè)展示大數(shù)據(jù)快速發(fā)展的好的案例。③Variety:大數(shù)據(jù)來源于分布式的各種來源,以多種格式(如視頻、文檔、評(píng)論、日志等)產(chǎn)生[2]。大數(shù)據(jù)集包括結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)、公共或私有數(shù)據(jù)、本地或遠(yuǎn)程數(shù)據(jù)、共享或機(jī)密數(shù)據(jù)、完整或不完整數(shù)據(jù)等。Emanietal.(2015)和GandomiandHaider(2015)指出,為了更好地定義大數(shù)據(jù),一些參與者加入了更多Vs等特征:Vision(目的),Verification(處理后的數(shù)據(jù)符合某些規(guī)范),Validation(目標(biāo)可實(shí)現(xiàn)),Value(許多領(lǐng)域的相關(guān)信息可以提?。?,Complexity(由于數(shù)據(jù)關(guān)系的演變,很難組織和分析大數(shù)據(jù))和Immutability(如果管理得當(dāng),收集和存儲(chǔ)大數(shù)據(jù)可以是永久性的)。

        (二)爬蟲技術(shù)

        網(wǎng)絡(luò)爬蟲,是按照設(shè)定的規(guī)則自動(dòng)抓取網(wǎng)絡(luò)信息的程序。網(wǎng)頁中包含了文字信息、超鏈接信息。從功能上來講,爬蟲的處理過程一般包括數(shù)據(jù)采集、處理、儲(chǔ)存三個(gè)部分。在網(wǎng)絡(luò)爬蟲的系統(tǒng)框架中,主過程由控制器、解析器、資源庫三部分組成??刂破鞯闹饕ぷ魇秦?fù)責(zé)給多線程中的各個(gè)爬蟲線程分配工作任務(wù)。解析器的主要工作是下載網(wǎng)頁,進(jìn)行頁面的處理,主要是將一些JS腳本標(biāo)簽、CSS代碼內(nèi)容、空格字符、HTML標(biāo)簽等內(nèi)容處理掉,爬蟲的基本工作由解析器完成。資源庫用來存放下載到的網(wǎng)頁資源,一般都采用大型的數(shù)據(jù)庫存儲(chǔ)。網(wǎng)絡(luò)爬蟲技術(shù)分為以下幾類:通用網(wǎng)絡(luò)爬蟲、聚焦網(wǎng)絡(luò)爬蟲、增量網(wǎng)絡(luò)爬蟲、深層網(wǎng)絡(luò)爬蟲。這幾種爬蟲的關(guān)鍵技術(shù)是類似的。爬蟲獲取網(wǎng)絡(luò)數(shù)據(jù)的方式:模擬瀏覽器發(fā)送請(qǐng)求,獲取網(wǎng)頁代碼——提取有用數(shù)據(jù),解析內(nèi)容,保存數(shù)據(jù)。

        Python程序類似于蜘蛛,在每個(gè)節(jié)點(diǎn)上捕捉獵物。通用爬蟲暨通用的網(wǎng)絡(luò)爬蟲也可以稱為可伸縮的網(wǎng)絡(luò)爬蟲,有兩種常見的爬取策略:深度優(yōu)先策略及廣度優(yōu)先策略。而聚焦爬蟲也被稱為主題網(wǎng)絡(luò)爬蟲,主要為特定的人群提供服務(wù),可以節(jié)省大量的服務(wù)器資源和帶寬資源;增量爬蟲則是指以增量方式更新已下載網(wǎng)頁并僅對(duì)新生成或更改的網(wǎng)頁進(jìn)行爬取的爬蟲程序,可以在一定程度上保證被爬取的頁面是盡可能新的。與周期性的抓取和刷新相比,增量爬蟲只在需要時(shí)對(duì)新生成或更改的頁面進(jìn)行抓取,不再下載未更改的頁面,可以有效減少數(shù)據(jù)下載量,及時(shí)更新抓取的頁面,減少時(shí)間和空間消耗,但也增加了爬行算法的復(fù)雜度和實(shí)現(xiàn)難度。增量爬蟲的體系結(jié)構(gòu)包括爬行模塊、排序模塊、更新模塊、本地頁面集、要爬行的URL集和本地頁面URL集。本文采用的增量網(wǎng)頁爬蟲進(jìn)行發(fā)送請(qǐng)求、獲取響應(yīng)內(nèi)容、解析內(nèi)容及保存數(shù)據(jù)[3]。

        (三)Python技術(shù)

        Python是一種解釋型、面向?qū)ο?、?dòng)態(tài)數(shù)據(jù)類型的高級(jí)程序設(shè)計(jì)語言。它是解釋型語言,但是也可以編譯成.pyc跨平臺(tái)的字節(jié)碼文件。.pyc文件有幾個(gè)好處:一是可以簡單地隱藏源碼,二是提高載入速度,三是跨平臺(tái)。相較于C++、Java語言,Python更易于學(xué)習(xí),有一個(gè)廣泛的標(biāo)準(zhǔn)庫。同時(shí)可以結(jié)合Java或C/C++語言,封裝成Python可以調(diào)用的擴(kuò)展庫,便于擴(kuò)展和移植。Python提供了非常豐富的針對(duì)網(wǎng)絡(luò)協(xié)議的標(biāo)準(zhǔn)庫,能簡單高效地進(jìn)行網(wǎng)頁抓取、網(wǎng)頁解析、數(shù)據(jù)存儲(chǔ)等,使程序員可以集中精力處理程序邏輯。

        二、常用網(wǎng)絡(luò)爬蟲技術(shù)

        (一)通用爬蟲技術(shù)

        通用網(wǎng)絡(luò)爬蟲又稱為全網(wǎng)爬蟲,其爬行對(duì)象由一批種子URL擴(kuò)充至整個(gè)網(wǎng)站,這種爬蟲適合搜索的內(nèi)容廣泛,目前主要是由Web服務(wù)提供商或搜索引擎使用。常見的策略有:一是深度優(yōu)先:根據(jù)目標(biāo)的深度由低到高依次訪問每一級(jí)網(wǎng)頁的鏈接,直到訪問完為止;二是廣度優(yōu)先:根據(jù)目標(biāo)內(nèi)容目錄結(jié)構(gòu)的深淺來提取,首先提取比較淺層次的頁面,在同一層的數(shù)據(jù)全部提取完以后,再進(jìn)入下一層進(jìn)行提取。

        (二)聚焦網(wǎng)絡(luò)爬蟲技術(shù)

        聚焦網(wǎng)絡(luò)爬蟲又被稱作主題網(wǎng)絡(luò)爬蟲,其最大的特點(diǎn)是只選擇性地爬行與預(yù)設(shè)的主題相關(guān)的頁面。常見的策略有:一是根據(jù)用戶需求內(nèi)容的爬行:這種策略是將用戶輸入的關(guān)鍵詞作為查找的主題,包含有查詢關(guān)鍵詞的頁面被認(rèn)為是與用戶查找的目標(biāo)相關(guān)的頁面;二是鏈接結(jié)構(gòu)評(píng)價(jià)的爬行策略:該種策略將包含很多結(jié)構(gòu)信息的半結(jié)構(gòu)化文檔Web頁面用來評(píng)價(jià)鏈接的重要性,其中一種廣泛使用的算法為PageRank算法;三是語境圖的爬行:這種策略是通過學(xué)習(xí)各個(gè)網(wǎng)頁之間的關(guān)連度,計(jì)算出當(dāng)前頁面與其它相關(guān)的頁面的距離,選擇距離越近的頁面進(jìn)行優(yōu)先訪問。

        (三)增量式的爬蟲技術(shù)

        增量式爬蟲是在已經(jīng)保存網(wǎng)站部分?jǐn)?shù)據(jù)的情況下,當(dāng)再次運(yùn)行爬蟲的時(shí)候,它不會(huì)對(duì)已有的數(shù)據(jù)重復(fù)爬取,只爬取數(shù)據(jù)庫中尚未保存的數(shù)據(jù)。常有更新方法有以下幾種:一是統(tǒng)一更新:用相同的頻率獲取所有網(wǎng)頁的數(shù)據(jù),不因網(wǎng)頁改變影響訪問的頻率;二是個(gè)體更新法:這種方法是根據(jù)面頁內(nèi)容的變化而改變?cè)L問的頻率;三是分類更新法:根據(jù)網(wǎng)頁變化頻率,將網(wǎng)頁劃分為快、慢兩個(gè)類別,根據(jù)不同類別設(shè)定不同的訪問頻率。

        (四)深層網(wǎng)絡(luò)爬蟲技術(shù)

        Web頁面按照存在方式可以分為表層頁面和深層頁面兩類。表層頁面指以傳統(tǒng)搜索引擎可以索引到的頁面,深層頁面中的大部分?jǐn)?shù)據(jù)不能通過靜態(tài)鏈接方式獲取,隱藏于表單之后,需要提交搜索主題詞之后才能得到相應(yīng)的頁面。

        三、項(xiàng)目分析、設(shè)計(jì)、測(cè)試與實(shí)現(xiàn)

        (一)項(xiàng)目分析

        1.項(xiàng)目描述

        項(xiàng)目為編寫一個(gè)網(wǎng)站爬蟲程序,將豆瓣讀書網(wǎng)站上的所有圖書信息爬取下來,并保存到MySQL數(shù)據(jù)庫中。爬取的信息字段要求有:ID號(hào)、書名、作者、出版社、原作名、譯者、出版年、頁數(shù)、定價(jià)、裝幀、叢書、ISBN、評(píng)分、評(píng)論人數(shù)。

        2.爬取網(wǎng)站過程分析

        第一步:打開豆瓣讀書首頁https://book.douban.com/。

        第二步:在豆瓣讀書首頁的右側(cè)點(diǎn)擊“所有熱門標(biāo)簽”,會(huì)跳到豆瓣圖書標(biāo)簽頁https://book.douban.com/tag/?view=type&icn=index-sorttags-all。

        第三步:點(diǎn)擊豆瓣圖書標(biāo)簽頁分類中的標(biāo)簽,會(huì)展示對(duì)應(yīng)圖書列表頁,在圖書列表頁中可以獲取每本圖書的詳細(xì)信息。

        3.項(xiàng)目設(shè)計(jì)

        Redis是一個(gè)開源的使用ANSI C語言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫,并提供多種語言的API。從2010年3月15日起,Redis的開發(fā)工作由VMware主持。Redis 是一個(gè)高性能的key-value數(shù)據(jù)庫。 redis的出現(xiàn),很大程度補(bǔ)償了memcached這類keyvalue存儲(chǔ)的不足,在部 分場(chǎng)合可以對(duì)關(guān)系數(shù)據(jù)庫起到很好的補(bǔ)充作用。它提供了Python,Ruby,Erlang,PHP客戶端,使用很方便。

        項(xiàng)目主要分為四大模塊。模塊一實(shí)現(xiàn)對(duì)豆瓣圖書信息以及所有標(biāo)簽信息的爬取,并將圖書的標(biāo)簽信息寫入到Redis數(shù)據(jù)庫中,此模塊可使用Requests簡單實(shí)現(xiàn)。模塊二負(fù)責(zé)從Redis中獲取每個(gè)圖書標(biāo)簽,分頁式地爬取每本圖書的URL信息后,將信息寫入到Redis中。模塊三負(fù)責(zé)從Redis中獲取每個(gè)圖書的URL地址,并爬取對(duì)應(yīng)的圖書詳情,將每本圖書詳情信息寫回到Redis數(shù)據(jù)庫中。模塊四負(fù)責(zé)從Redis中獲取每本圖書的詳情信息,并將信息依次寫入到MySQL數(shù)據(jù)中,作為最終的爬取信息。該項(xiàng)目結(jié)構(gòu)圖如圖1所示。

        (二)項(xiàng)目部分實(shí)現(xiàn)

        1.定義model類

        編輯myweb/web/models.py

        https://book.douban.com/

        classBooks(models.Model):

        title=models.CharField(max_length=255)#書名

        author=models.CharField(max_length=64)#作者

        ......

        binding=models.CharField(max_length=32)#裝幀

        series=models.CharField(max_length=128)#叢書

        isbn=models.CharField(max_length=128)#ISBN

        score=models.CharField(max_length=128)#評(píng)分

        number=models.IntegerField(default=0)#評(píng)論人數(shù)

        2.URL路由配置

        fromdjango.conf.urlsimporturl,include

        urlpatterns=[

        url(r’^’,include(‘web.urls’)),

        ]

        創(chuàng)建Web子路由文件:myweb/web/urls.py,并編寫代碼如下:

        fromdjango.conf.urlsimporturl

        from.importviews

        urlpatterns=[

        url(r’^$’,views.index,name=”index”),

        url(r’^/$’,views.index,name=”index”),

        ]

        (三)編寫視圖文件部分代碼

        defindex(request):

        #獲取商品信息查詢對(duì)象

        mod=Books.objects

        list=mod.filter()

        #執(zhí)行分頁處理

        pIndex=int(request.GET.get(“p”,1))

        page=Paginator(list,50)#以50條每頁創(chuàng)建分頁對(duì)象

        maxpages=page.num_pages#最大頁數(shù)

        #判斷頁數(shù)是否越界

        ifpIndex>maxpages:

        pIndex=maxpages

        ifpIndex<1:

        pIndex=1

        list2=page.page(pIndex)#當(dāng)前頁數(shù)據(jù)

        plist=page.page_range#頁碼數(shù)列表

        (四)項(xiàng)目測(cè)試

        啟動(dòng)服務(wù)測(cè)試,$pythonmanage.pyrunserver使用瀏覽器訪問測(cè)試,抓取部分信息的效果圖如圖2所示。本系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)面向定向網(wǎng)站的網(wǎng)絡(luò)爬蟲程序,經(jīng)過測(cè)試,能滿足不同的性能要求,且抓取效果良好。

        四、結(jié)語

        文章對(duì)互聯(lián)網(wǎng)網(wǎng)站的信息進(jìn)行爬取并展示,并對(duì)一些網(wǎng)站的反爬技術(shù)使用對(duì)應(yīng)的反反爬策略,不僅不增加網(wǎng)站服務(wù)器的壓力,還提高了爬取的效率和穩(wěn)定性;并且遵守了網(wǎng)站的Robots協(xié)議。在大數(shù)據(jù)時(shí)代,爬蟲行業(yè)必將風(fēng)生水起,Python網(wǎng)絡(luò)爬蟲更是獨(dú)領(lǐng)風(fēng)騷?;赑ython的Web爬蟲數(shù)據(jù)抽取是一種主流技術(shù),Python語言具有跨平臺(tái)、開發(fā)速度快、語言簡單等特點(diǎn)。Python語言可以通過第三方請(qǐng)求庫獲取返回值的內(nèi)容,然后通過正則、XPath和BeautifulSoup三種Python過濾技術(shù)快速匹配和提取網(wǎng)頁中的圖像和文本數(shù)據(jù),這樣不僅能精確地找到網(wǎng)頁中需要的數(shù)據(jù),還能自動(dòng)化快速地將這些數(shù)據(jù)保存下來,極大地減少了查找數(shù)據(jù)的時(shí)間?;赑ython的網(wǎng)絡(luò)爬蟲不僅爬取速度快,其語言的簡潔性也大大地縮短了完成爬取的時(shí)間。

        參考文獻(xiàn):

        [1]曾誠.基于Python的網(wǎng)絡(luò)爬蟲及數(shù)據(jù)可視化和預(yù)測(cè)分析[J].信息與電腦(理論版),2020,32(09):167-169.

        [2]楊雄.基于Python爬蟲的比賽信息查詢交流系統(tǒng)設(shè)計(jì)[J].無線互聯(lián)科技,2020,17(09):45-46.

        [3]裴麗麗.基于Python語言對(duì)電影影評(píng)數(shù)據(jù)爬蟲與詞云制作[J].信息記錄材料,2020,21(05):116-118.

        猜你喜歡
        頁面信息
        微信群聊總是找不到,打開這個(gè)開關(guān)就好了
        大狗熊在睡覺
        刷新生活的頁面
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        展會(huì)信息
        同一Word文檔 縱橫頁面并存
        淺析ASP.NET頁面導(dǎo)航技術(shù)
        其實(shí)IE也懂Chrome的心
        信息
        健康信息
        祝您健康(1987年3期)1987-12-30 09:52:32
        亚洲色在线视频| 夜夜躁狠狠躁日日躁视频| 成人免费无码大片a毛片软件| 久久精品日韩av无码| 亚洲AV秘 片一区二区三区| 国产人妖伦理视频在线观看| 又大又长粗又爽又黄少妇视频| 手机在线看永久av片免费| 日日爽日日操| 人妻被公上司喝醉在线中文字幕| 国产av天堂亚洲国产av天堂| 国产chinese男男gay视频网| 久久老子午夜精品无码| 精品国产免费一区二区久久| 午夜精品久久久久久久99老熟妇| 国产肉丝袜在线观看| 尤物蜜芽福利国产污在线观看| 日本本土精品午夜视频| 国产人妻大战黑人20p| 国产精品厕所| 热热久久超碰精品中文字幕| 久久久亚洲熟妇熟女av| 一性一交一口添一摸视频| 91短视频在线观看免费| 日产一区二区三区的精品| 国产精品久久久久一区二区三区| 搡老熟女老女人一区二区| 日本岛国精品中文字幕| 加勒比婷婷色综合久久| 日本中文字幕一区二区高清在线| 伊人久久综在合线亚洲不卡| 日韩一区二区中文字幕| 噜噜噜噜私人影院| 亚洲精品国精品久久99热一| 久久精品国产亚洲av麻豆四虎| 亚洲av综合av一区| 人妻丰满熟妇av无码片| 亚洲人成影院在线高清| 小池里奈第一部av在线观看| 日韩中文字幕免费视频| 久久AV中文综合一区二区|