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

        ?

        基于聚焦型網(wǎng)絡(luò)爬蟲的影評(píng)獲取技術(shù)

        2018-10-22 11:14:36楊小兵
        關(guān)鍵詞:搜索引擎頁面信息

        高 宇,楊小兵

        (中國(guó)計(jì)量大學(xué) 信息工程學(xué)院,浙江 杭州 310018)

        大數(shù)據(jù)和云計(jì)算等新一代互聯(lián)網(wǎng)技術(shù)的迅速發(fā)展,使得如何從大量數(shù)據(jù)中提取有效信息,挖掘其中的價(jià)值成為當(dāng)前的研究熱點(diǎn).然而,很多用戶通過搜索引擎獲取數(shù)據(jù)的過程中,經(jīng)常會(huì)出現(xiàn)很多不需要的信息,這加劇了有限的搜索引擎服務(wù)器資源與無限的網(wǎng)絡(luò)數(shù)據(jù)資源之間的矛盾.在通過傳統(tǒng)的搜索引擎進(jìn)行數(shù)據(jù)獲取的過程中,還需要用戶對(duì)搜索到的信息進(jìn)行分析,最終找到自己需要的信息.就目前的網(wǎng)絡(luò)現(xiàn)狀,這樣的搜索引擎是非常浪費(fèi)時(shí)間的,而且準(zhǔn)確度不高.

        本文在通用爬蟲的基礎(chǔ)上,實(shí)現(xiàn)了一個(gè)基于python的聚焦型網(wǎng)絡(luò)爬蟲系統(tǒng),它根據(jù)既定的抓取目標(biāo),有選擇的訪問網(wǎng)絡(luò)上的網(wǎng)頁和相關(guān)的鏈接,從而獲取所需信息.實(shí)驗(yàn)中,爬蟲程序模擬登陸豆瓣電影網(wǎng)址獲取最新上映電影的影評(píng),并將爬取到的數(shù)據(jù)以JSON的格式存儲(chǔ)到本地,以便能夠后期進(jìn)行數(shù)據(jù)分析.最后對(duì)影評(píng)信息使用Jieba分詞,將出現(xiàn)頻率高的詞語以詞云的形式直觀展現(xiàn)出來.使用本文爬蟲程序可以節(jié)省數(shù)據(jù)分析人員的開發(fā)時(shí)間,實(shí)現(xiàn)對(duì)海量數(shù)據(jù)起到針對(duì)性的提取.

        1 基于Python的聚焦型網(wǎng)絡(luò)爬蟲架構(gòu)

        1.1 網(wǎng)絡(luò)爬蟲概述

        網(wǎng)絡(luò)爬蟲是一種按照一定的規(guī)則,自動(dòng)的抓取萬維網(wǎng)上數(shù)據(jù)的程序或者腳本.網(wǎng)絡(luò)爬蟲主要分為兩類:一類是搜索引擎服務(wù)商設(shè)計(jì)的通用爬蟲,這類爬蟲通過網(wǎng)頁鏈接采集互聯(lián)網(wǎng)信息,然后返回的信息供搜索引擎建立索引.所以,當(dāng)用戶在搜索引擎中輸入文字搜索時(shí),引擎會(huì)根據(jù)輸入信息進(jìn)行檢索,找到搜索文字的相關(guān)內(nèi)容并返回.另一類是對(duì)確切指定的網(wǎng)址進(jìn)行數(shù)據(jù)抓取,獲得所需信息.

        1.2 工作流程

        搜索引擎中網(wǎng)絡(luò)爬蟲的基本工作流程如下.

        1)確定初始種子URL集合.

        2)從集合中取出待抓取的URL隊(duì)列,將其對(duì)應(yīng)的網(wǎng)頁下載下來,存儲(chǔ)到已下載網(wǎng)頁中,再將對(duì)應(yīng)的URL放進(jìn)已抓取URL隊(duì)列中.

        3)分析下載的網(wǎng)頁數(shù)據(jù),從中獲取新網(wǎng)站的URL.若新的URL不在已抓取的URL隊(duì)列中,就將其加入到待抓取URL集合中.

        4)不斷循環(huán)(2)、(3)步驟,直到待抓取URL隊(duì)列中所有的URL已經(jīng)完全抓取.

        5)清洗數(shù)據(jù),根據(jù)使用者文字搜索,展示相應(yīng)頁面.

        整個(gè)通用的網(wǎng)絡(luò)爬蟲的基本工作流程圖,如圖1.

        圖1 網(wǎng)絡(luò)爬蟲結(jié)構(gòu)Figure 1 Structure of web crawler

        聚焦型網(wǎng)絡(luò)爬蟲是“面向特定主體需求”的一種網(wǎng)絡(luò)爬蟲程序,在實(shí)施網(wǎng)頁抓取時(shí)會(huì)對(duì)內(nèi)容進(jìn)行處理篩選,盡量保證只抓取與需求相關(guān)的網(wǎng)頁信息.相對(duì)于通用網(wǎng)絡(luò)爬蟲,聚焦型網(wǎng)絡(luò)爬蟲還需要解決三個(gè)主要問題:

        1)對(duì)抓取目標(biāo)的描述或定義;

        2)對(duì)網(wǎng)頁或數(shù)據(jù)的分析與過濾;

        3)對(duì)URL的搜索策略.

        目前聚焦爬蟲對(duì)抓取目標(biāo)的選取可分為基于目標(biāo)網(wǎng)頁特征、基于目標(biāo)數(shù)據(jù)模式和基于領(lǐng)域概念三類.基于目標(biāo)網(wǎng)頁特征的爬蟲所獲取、存儲(chǔ)并搜索的對(duì)象一般為網(wǎng)站或者網(wǎng)頁.基于目標(biāo)數(shù)據(jù)模式的爬蟲主要針對(duì)網(wǎng)頁上的數(shù)據(jù),所抓取的數(shù)據(jù)一般要符合一定的模式,或者可以轉(zhuǎn)化或映射為目標(biāo)數(shù)據(jù)模式.另一種描述方式是建立目標(biāo)領(lǐng)域的本體或者詞典,用于從語義角度分析不同特征在某一主題中的重要性.

        1.3 Python語言

        Python語言是一門功能強(qiáng)大、語法簡(jiǎn)潔的開源編程語言,可以運(yùn)行在Windows、Mac和Linux等各種操作系統(tǒng)上.它繼承了傳統(tǒng)編譯語言的強(qiáng)大性和通用性,同時(shí)也借鑒了簡(jiǎn)單腳本和解釋語言的易用性.其次,Python非常擅長(zhǎng)處理文本和字符串,它包含了常用的文本處理函數(shù),支持正則表達(dá)式.可以方便地處理文本內(nèi)容.更重要的是,Python具有豐富的標(biāo)準(zhǔn)庫和可以添加大量的第三方庫.它又被稱為膠水語言,能夠和其他語言模塊輕松結(jié)合起來.

        1.4 與爬蟲相關(guān)的庫及存儲(chǔ)形式

        爬蟲中最主要的模塊是網(wǎng)頁下載模塊、網(wǎng)頁解析模塊和數(shù)據(jù)存儲(chǔ)模塊.網(wǎng)頁下載器中urllib和urllib2是python中的內(nèi)置下載模塊.本實(shí)驗(yàn)中采用的是Requests第三方庫,支持HTTP連接保持和連接池,支持使用cookie保持會(huì)話,支持文件上傳和確定響應(yīng)內(nèi)容的編碼等.相比較內(nèi)置模塊,其對(duì)HTTP請(qǐng)求更加簡(jiǎn)單,操作也更加人性化.

        網(wǎng)頁解析器用來處理下載的網(wǎng)頁內(nèi)容,針對(duì)性地提取我們需要的數(shù)據(jù).網(wǎng)頁的內(nèi)容一般是HTML格式,本實(shí)驗(yàn)采用Beautiful Soup解析網(wǎng)頁和正則表達(dá)式匹配文本.Beautiful Soup可以將復(fù)雜HTML文檔轉(zhuǎn)換成一個(gè)簡(jiǎn)單的樹型結(jié)構(gòu),通過節(jié)點(diǎn)進(jìn)行搜索遍歷所需要的內(nèi)容.在編寫處理網(wǎng)頁文本的程序時(shí),經(jīng)常會(huì)出現(xiàn)查找符合某些復(fù)雜規(guī)則的字符串的需要,而正則表達(dá)式通常作為一個(gè)模板,可以將某個(gè)字符模式與所搜索的字符串進(jìn)行匹配.

        最后就是數(shù)據(jù)存儲(chǔ),利用python可以將數(shù)據(jù)轉(zhuǎn)為JSON、CSV或者其他格式文件.為了便于后期進(jìn)一步的數(shù)據(jù)分析,實(shí)驗(yàn)中將爬取的數(shù)據(jù)以JSON格式存儲(chǔ).為了防止亂碼出現(xiàn),存儲(chǔ)時(shí)要特別注意數(shù)據(jù)的編碼方式.

        2 數(shù)據(jù)爬取設(shè)計(jì)

        網(wǎng)絡(luò)爬蟲系統(tǒng)主要通過模塊化進(jìn)行設(shè)計(jì),一般每個(gè)功能都需要獨(dú)立的模塊.這樣能夠方便以后進(jìn)行代碼的維護(hù),而且還能提高代碼的可讀性.各種模塊的功能實(shí)現(xiàn)之后,整個(gè)網(wǎng)絡(luò)爬蟲體系的功能也就已經(jīng)完成.本實(shí)驗(yàn)以爬取豆瓣最新電影影評(píng)為例,詳細(xì)講解Python聚焦型爬蟲的實(shí)現(xiàn)原理.

        2.1 頁面抓取

        根據(jù)指定的URL,抓取豆瓣網(wǎng)最新上映電影頁面.通過建立連接,發(fā)送HTTP請(qǐng)求.利用Requests建立與服務(wù)器的連接,當(dāng)服務(wù)器接收到請(qǐng)求后,返回相應(yīng)的HTTP應(yīng)答.

        2.2 頁面處理

        進(jìn)行頁面處理時(shí),首先需要對(duì)HTML相關(guān)的源代碼進(jìn)行過濾和處理,分析出需要的信息,然后再對(duì)分析出的結(jié)果進(jìn)行整合.對(duì)應(yīng)網(wǎng)頁的HTML結(jié)構(gòu)文檔如圖2.

        圖2 網(wǎng)頁的HTML結(jié)構(gòu)文檔Figure 2 HTML structure document of the web page

        通過上文的HTML文檔,能夠查看電影的相關(guān)信息,比如片名、評(píng)分、演員和時(shí)長(zhǎng)等.然而爬蟲最終需要抓取的是影評(píng)信息,而電影影評(píng)對(duì)應(yīng)的網(wǎng)址為:https://movie. douban. com/subject/*******/comments?start=##&limit=20.

        其中*******對(duì)應(yīng)的是電影的ID,##對(duì)應(yīng)的是影評(píng)的頁數(shù).由此可知,實(shí)驗(yàn)中先要根據(jù)初始URL爬取到對(duì)應(yīng)電影的ID,然后再爬取新的網(wǎng)址獲取相應(yīng)的影評(píng)信息.需要定位的DOM樹節(jié)點(diǎn)及屬性流程圖如圖3.

        圖3 DOM樹節(jié)點(diǎn)流程圖Figure 3 Flow chart of DOM tree node

        正如上文介紹的,使用Beautiful Soup解析HTML網(wǎng)頁標(biāo)簽,并提供定位內(nèi)容的便捷接口.部分代碼及注釋為:

        #獲取所有正在上映電影的ID和片名,并以列表的形式存儲(chǔ)

        contents = soup. find_all(‘div’,id = ‘nowplaying’)

        content = contents[0]. find_all(‘li’,class_ = ‘list-item’)

        獲取到相應(yīng)電影的ID,就可以根據(jù)新的網(wǎng)址定位到其影評(píng)頁面.對(duì)應(yīng)的頁面解析如圖4.

        圖4 影評(píng)頁面解析Figure 4 Analysis of review page

        由圖4可知,對(duì)應(yīng)的影評(píng)信息在div節(jié)點(diǎn),class屬性為comment-item下,相應(yīng)代碼如下:

        #包含影評(píng)及其他信息的代碼

        Comment_later = soup.find_all(‘div’,class_=’comment’)item

        #提取出影評(píng)信息

        Comment_later. find_all(‘p’)[0]. string

        #在爬取影評(píng)信息的代碼中,通過自定義列表索引,就可以獲取不同的電影評(píng)論

        Comment_list = getCByld (nowplaying_list[*][‘id’]

        其中,*代表索引值,對(duì)應(yīng)著不同電影,getCByld是爬取影評(píng)的函數(shù).

        運(yùn)行上述代碼可以爬取到影評(píng)信息,然后將這些數(shù)據(jù)以JSON的格式保存到本地.此外,本實(shí)驗(yàn)可以從輸入端自定義索引,就可以獲取相應(yīng)的電影影評(píng)及詞云展示,無需再通過搜索引擎查詢,從而加快了我們對(duì)數(shù)據(jù)的獲取能力.本實(shí)驗(yàn)爬取了網(wǎng)站的前10頁影評(píng),保存結(jié)果為圖5,可以看到這些評(píng)論和網(wǎng)頁中的電影評(píng)論完全一致.

        3 數(shù)據(jù)可視化分析

        數(shù)據(jù)可視化是數(shù)據(jù)分析很重要的一部分,它能夠從繁雜的數(shù)據(jù)中更直觀更有效的獲取信息.當(dāng)獲取到影評(píng)信息之后,需要對(duì)數(shù)據(jù)進(jìn)行可視化,首先需要做的是數(shù)據(jù)的清洗.

        圖5爬取的電影影評(píng)

        Figure 5 Film review crawled

        1)將所有的評(píng)論轉(zhuǎn)化為字符串格式.代碼為:

        String_num=’’

        for k in range(len(comment_list)):

        String_num=String_num+str(comment_list[k]. strip()

        2)利用正則表達(dá)式匹配中文,去掉所有的標(biāo)點(diǎn)符號(hào).匹配中文的代碼為

        pattern = re. compile(r’[u4e00-u9fa5]+).

        3)對(duì)數(shù)據(jù)進(jìn)行中文分詞操作,并去掉數(shù)據(jù)中沒有參考價(jià)值的虛詞,實(shí)驗(yàn)中使用的是Jieba分詞.

        4)調(diào)用pandas包的groupby、agg和sort_values函數(shù)進(jìn)行分組排序處理,以便用于后面詞云顯示.

        5)最后調(diào)用WordCloud詞云包,將數(shù)據(jù)用詞云進(jìn)行顯示:plt. show(). 如圖6.

        圖6 影評(píng)的詞云顯示Figure 6 Cloud display of movie reviews

        4 結(jié)語

        隨著網(wǎng)絡(luò)上的數(shù)據(jù)資源日益龐大,有效獲取所需數(shù)據(jù)變得尤為重要.聚焦型網(wǎng)絡(luò)爬蟲作為一種自動(dòng)獲取相關(guān)數(shù)據(jù)的手段,有著較高的應(yīng)用價(jià)值.本實(shí)驗(yàn)中,針對(duì)性地爬取某一電影的影評(píng)數(shù)據(jù),確保了數(shù)據(jù)的真實(shí)性與最新性,避免了無關(guān)數(shù)據(jù)的干擾.這樣的話,接下來的數(shù)據(jù)分析結(jié)果,才有參考價(jià)值.不過,若爬取的內(nèi)容過多,Python執(zhí)行會(huì)花費(fèi)很多時(shí)間,如果結(jié)合Python的多線程技術(shù),并考慮下載緩存優(yōu)化和并發(fā)性,則將會(huì)使性能達(dá)到極大改善.

        猜你喜歡
        搜索引擎頁面信息
        大狗熊在睡覺
        刷新生活的頁面
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        網(wǎng)絡(luò)搜索引擎亟待規(guī)范
        展會(huì)信息
        基于Nutch的醫(yī)療搜索引擎的研究與開發(fā)
        廣告主與搜索引擎的雙向博弈分析
        同一Word文檔 縱橫頁面并存
        淺析ASP.NET頁面導(dǎo)航技術(shù)
        搜索,也要“深搜熟濾”
        国产日产精品久久久久久| 亚洲中文字幕久久在线| 成人大片免费观看视频| 一边摸一边抽搐一进一出口述| 中国人妻与老外黑人| 国产97色在线 | 亚洲| 成年女人永久免费看片| 午夜短无码| 91中文字幕精品一区二区| 日本免费观看视频一区二区| 国精产品一区一区三区有限在线| 国产老熟女网站| 国产午夜影视大全免费观看| 亚洲AV无码成人品爱| 久天啪天天久久99久孕妇| 午夜婷婷国产麻豆精品| 中文字幕av熟女中文av| 女人无遮挡裸交性做爰| 中文字幕日韩一区二区不卡| 秋霞鲁丝片av无码| 在线观看av手机网址| 日本女优一区二区在线免费观看| 亚洲av天堂在线免费观看| 一二三区无线乱码中文在线| 国内最真实的xxxx人伦| 午夜精品久久久久成人| 国内精品大秀视频日韩精品| 99久久超碰中文字幕伊人| 九色精品国产亚洲av麻豆一| 女女同女同一区二区三区| 妺妺窝人体色777777 | 国产免费无码一区二区三区| 国产日韩欧美网站| 一区二区三区在线观看高清视频| 国产高潮流白浆视频在线观看| 夜夜夜夜曰天天天天拍国产| 国产午夜无码片在线观看影院 | 国产精品流白浆喷水| 亚洲熟女国产熟女二区三区| 全部亚洲国产一区二区| 狠狠色丁香婷婷综合潮喷|