• 
    

    
    

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

      ?

      基于Python的網(wǎng)絡(luò)爬蟲研究

      2019-10-21 06:52李俊華
      現(xiàn)代信息科技 2019年20期
      關(guān)鍵詞:網(wǎng)絡(luò)爬蟲可視化

      摘? 要:隨著大數(shù)據(jù)與人工智能時代的來臨,有效地獲取和利用信息成為了一項挑戰(zhàn),從而使網(wǎng)絡(luò)爬蟲越來越受到人們的重視與青睞。Python以其簡單和強(qiáng)大的功能在網(wǎng)絡(luò)爬蟲方向脫穎而出。本文將介紹有關(guān)Python網(wǎng)絡(luò)爬蟲的相關(guān)知識,同時實現(xiàn)一次爬取豆瓣影評評論,并運(yùn)用可視化庫生成詞云,并對其進(jìn)行分析。

      關(guān)鍵詞:網(wǎng)絡(luò)爬蟲;Python;可視化

      中圖分類號:TP393.092;TP391.3? ? ? 文獻(xiàn)標(biāo)識碼:A 文章編號:2096-4706(2019)20-0026-03

      Abstract:With the advent of the era of big data and artificial intelligence,how to effectively acquire and utilize information has become a challenge,and online crawlers have become more and more popular and favored by people. Python stands out in the direction of web crawlers with its simple and powerful features. This article will introduce you to the Python web crawler and implement a crawling Douban review commentary and use the visual library to generate a word cloud to analyze it.

      Keywords:web crawler;Python;visualization

      0? 引? 言

      網(wǎng)絡(luò)爬蟲是一種“古老”的網(wǎng)絡(luò)技術(shù),它伴隨著互聯(lián)網(wǎng)的發(fā)展而不斷演化,隨著大數(shù)據(jù)時代的來臨,爬蟲技術(shù)又迎來了新一波的振興浪潮。在大數(shù)據(jù)架構(gòu)中,數(shù)據(jù)的收集與存儲占據(jù)著極為重要的核心位置,而爬蟲技術(shù)也在這兩項技術(shù)層次中占據(jù)極為重要的位置。爬蟲是請求網(wǎng)站并提取數(shù)據(jù)的自動化程序。請求、提取與自動化變成了爬蟲的關(guān)鍵。本文將介紹網(wǎng)絡(luò)爬蟲及其應(yīng)用,以及Python的網(wǎng)絡(luò)爬蟲實現(xiàn)。

      1? 網(wǎng)絡(luò)爬蟲及其應(yīng)用

      網(wǎng)絡(luò)爬蟲,又稱為網(wǎng)絡(luò)機(jī)器人或者網(wǎng)頁蜘蛛,是一種按照一定規(guī)則自動抓取萬維網(wǎng)信息的程序或者腳本。網(wǎng)絡(luò)爬蟲大致可以分為通用網(wǎng)絡(luò)爬蟲、聚焦網(wǎng)絡(luò)爬蟲、增量式網(wǎng)絡(luò)爬蟲以及深層網(wǎng)絡(luò)爬蟲等類型。在實際的網(wǎng)絡(luò)爬蟲系統(tǒng)中,通常是結(jié)合了幾種爬蟲技術(shù)實現(xiàn)的。

      通用型網(wǎng)絡(luò)爬蟲的典型的應(yīng)用便是搜索引擎,例如百度、谷歌等,但是該類爬蟲存在許多弊端。例如,不同的用戶對于檢索具有不同的需求和目的,而通用搜索引擎返回的結(jié)果包含大量無用的網(wǎng)頁;再如,由于圖片、音頻、視頻等多媒體數(shù)據(jù)的不斷涌現(xiàn),通用搜索引擎不能很好地發(fā)現(xiàn)和獲取信息等等。為了解決以上弊端,聚焦爬蟲應(yīng)運(yùn)而生,它根據(jù)既定的抓取目標(biāo)對萬維網(wǎng)上的相關(guān)網(wǎng)頁與鏈接進(jìn)行有選擇的訪問,并獲取所需信息。增量式爬蟲是指對已下載網(wǎng)頁采取增量式更新,對于沒有變化的網(wǎng)頁并不重新下載,大大減少了下載量,也減少了時間與空間的浪費(fèi),但同時增加了算法和實現(xiàn)的復(fù)雜度。對于Web頁面,其存在方式有表層和深層網(wǎng)頁,深層網(wǎng)頁不能僅僅通過靜態(tài)網(wǎng)頁鏈接獲取,其數(shù)據(jù)隱藏在表單之后,只有通過用戶提交相關(guān)必要關(guān)鍵詞才能獲取,因此需要深層網(wǎng)絡(luò)爬蟲技術(shù)的支持。

      以通用網(wǎng)絡(luò)爬蟲為例,網(wǎng)絡(luò)爬蟲基本工作流程為:選取種子URL(可以由用戶人為指定,也可以由用戶指定的某幾個初始爬取網(wǎng)頁決定);將其放入待抓取URL隊列;讀取URL;解析DNS;得到主機(jī)IP;下載對應(yīng)網(wǎng)頁;存儲網(wǎng)頁;分析已抓取的URL,并從中分析出其他鏈接的URL,同時比較去重;將去重后的URL再次放入到待抓取URL隊列,進(jìn)入下一次循環(huán)。通用網(wǎng)絡(luò)爬蟲結(jié)構(gòu)流程如圖1所示。

      2? Python實現(xiàn)網(wǎng)絡(luò)爬蟲

      開發(fā)網(wǎng)絡(luò)爬蟲的語言有很多,常見的開發(fā)語言有Python、Java、PHP、Node.JS、C++以及Go等語言。本文主要闡述基于Python的網(wǎng)絡(luò)爬蟲,Python語言的特點是簡單易學(xué)、代碼簡潔并且框架非常豐富,同時Python之所以強(qiáng)大并能夠在網(wǎng)絡(luò)爬蟲中占據(jù)一席之地,與其強(qiáng)大的第三方庫是分不開的。Python為爬蟲提供了豐富的第三方庫,其中較為常用的Python中爬蟲三大庫,即Requests庫、Beautiful Soup庫以及l(fā)xml庫。根據(jù)實際需求可選用相應(yīng)爬蟲庫進(jìn)行實現(xiàn)。Python實現(xiàn)網(wǎng)絡(luò)爬蟲的基本流程如圖2所示。

      (1)發(fā)送請求:即發(fā)送一個Request;

      (2)獲取相應(yīng)內(nèi)容:即得到Response;

      (3)解析內(nèi)容:對于HTML數(shù)據(jù)使用re模塊或第三方庫等;

      (4)保存數(shù)據(jù):數(shù)據(jù)庫或者文件中保存。

      網(wǎng)絡(luò)連接其需要計算機(jī)與服務(wù)器端的各一次的Request請求和Response回應(yīng)。同理,爬蟲也需要這個過程,即模擬計算機(jī)向服務(wù)器段發(fā)起Request請求和接收服務(wù)器端返回的Response內(nèi)容并對其進(jìn)行解析,從而提取所需要的信息。在網(wǎng)絡(luò)爬蟲的爬取過程中,比如聚焦網(wǎng)絡(luò)爬蟲中,爬取網(wǎng)頁的順序尤其重要,而爬取的順序一般由爬取策略來決定。爬行策略有很多種,包括廣度優(yōu)先爬行策略、深度優(yōu)先爬行策略、大站優(yōu)先爬行策略(按照對應(yīng)的網(wǎng)頁所屬的站點進(jìn)行分類,網(wǎng)頁數(shù)量多的站點稱為大站,即網(wǎng)頁越多的優(yōu)先爬取)、反鏈爬行策略(反向鏈接的網(wǎng)頁數(shù)越多的優(yōu)先爬取)以及OPIC策略、Partial策略和PageRank策略等爬行策略。本文將以基于Python循環(huán)抓取豆瓣影評中所有觀眾的評論,將其存儲在文本文件中,并以運(yùn)用可視化庫詞云制作詞語圖為例,詳細(xì)介紹基于Python的網(wǎng)絡(luò)爬蟲過程。

      2.1? 內(nèi)容簡介

      (1)目標(biāo)網(wǎng)站:本文目標(biāo)為抓取豆瓣影評中所有觀眾的評論,將其存儲在文本文件中,并運(yùn)用可視化庫詞云制作詞語圖,其目標(biāo)網(wǎng)站為https://movie.douban.com/subject/27195020/comments?start=;

      (2)使用軟件:本文采用Python語言來實現(xiàn)目標(biāo)網(wǎng)站的網(wǎng)絡(luò)爬取過程,Python開發(fā)的軟件有很多,包括最為常用的IDE為PyCharm,以及文本編輯器Sublime Text,由于代碼相對簡單,本文采用的軟件為Sublime Text;

      (3)Python版本:目前,Python版本分為兩種,Python 2版本和Python 3.x版本,目前Python 2版本的所有項目都將向Python 3.x遷移,并且Python 2版本已經(jīng)停止更新和支持,故本文采用Python版本為Python 3.6;

      (4)涉及Python類庫:上文已經(jīng)提到過,Python網(wǎng)絡(luò)爬蟲依賴于其強(qiáng)大的第三方庫的支持,包括Requests、Beautiful Soup和lxml等,本文同時用到的第三方爬蟲庫有Requests和lxml。除以上爬蟲相關(guān)的第三方庫外,本文還用到wordcloud,該庫用于制作可視化詞云,Numpy庫用于對爬取到數(shù)據(jù)進(jìn)行數(shù)據(jù)分析,PIL庫用于圖像處理,以及jieba庫用于自然語言的分詞處理。

      2.2? 實現(xiàn)思路

      抓取豆瓣影評中所有觀眾的評論,將其存儲在文本文件中,并運(yùn)用可視化庫詞云制作詞語圖,根據(jù)其目標(biāo)要求以及爬蟲基本流程,設(shè)計以下實現(xiàn)思路:

      (1)安裝并導(dǎo)入相應(yīng)類庫:使用pip命令安裝相應(yīng)第三方庫,包括Requests、lxml、wordcloud、Numpy以及jieba,安裝后使用import導(dǎo)入所有用到的類庫;

      (2)確定網(wǎng)頁:根據(jù)目標(biāo)網(wǎng)站來確定所要爬取的目標(biāo)網(wǎng)頁;

      (3)獲取請求頭:

      headers={

      "User-Agent":"Mozilla/5.0(Windows NT 10.0;WOW64)"

      "AppleWebKit/537.36(KHTML,like Gecko)"

      "Chrome/63.0.3239.132 Safari/537.36"

      }

      User-Agent字段是用來告知網(wǎng)站站長爬蟲自己的身份信息的,網(wǎng)站管理員可以通過爬蟲告知的身份信息對爬蟲的身份進(jìn)行識別,此為爬蟲的身份識別過程。也有些爬蟲可以偽裝成其他身份去進(jìn)行網(wǎng)站爬取,并以此來獲得額外的數(shù)據(jù)。雖然任意爬取在技術(shù)上可以實現(xiàn),但是并不提倡,因為共同營造一個良好的網(wǎng)絡(luò)環(huán)境,并遵守規(guī)則,才能實現(xiàn)爬方與服務(wù)方的共贏;

      (4)解決反爬機(jī)制并循環(huán)獲取所有頁面;

      (5)運(yùn)用XPath獲取短評:XPath是xml的路徑語言,簡而言之就是通過元素的路徑來查找到這個標(biāo)簽元素;

      (6)存入txt文檔:將爬取到的所有信息保存到txt文檔中;

      (7)對文檔短評進(jìn)行分詞:使用jieba庫,對保存下來的短評txt文檔進(jìn)行分詞,分詞后,在單獨個體之間添加空格;

      (8)制作并生成詞云:通過wordcloud庫進(jìn)行詞云的制作,選好詞云形狀圖片,設(shè)置詞云字體,剔除如“真的”“什么”“但是”“而且”“那么”等無關(guān)字。設(shè)置詞云背景色等,最終制作并生成詞云可視化圖片。

      根據(jù)以上實現(xiàn)思路,使用Python完成代碼編寫,其部分實現(xiàn)核心代碼如圖3所示。

      2.3? 運(yùn)行結(jié)果

      通過對代碼的不斷調(diào)試與測試,最終實現(xiàn)了基于Python的網(wǎng)絡(luò)爬蟲運(yùn)行程序,得到短評txt文檔,根據(jù)文檔內(nèi)容生成的詞云效果圖如圖4和圖5所示。

      3? 結(jié)? 論

      隨著大數(shù)據(jù)與人工智能時代的來臨,以及海量數(shù)據(jù)的不斷涌現(xiàn),快速準(zhǔn)確地獲取用戶想要的信息變得尤為迫切和重要,從而使得網(wǎng)絡(luò)爬蟲技術(shù)的應(yīng)用日益增多,本文詳細(xì)介紹了網(wǎng)絡(luò)爬蟲的相關(guān)分類及其應(yīng)用,同時著重闡述了基于Python的網(wǎng)絡(luò)爬蟲,描述了其爬蟲原理及流程,最后本文通過基于Python的豆瓣影評的爬取并進(jìn)行存儲,最終實現(xiàn)詞云可視化效果,同時詳細(xì)闡述了基于Python的網(wǎng)絡(luò)爬蟲技術(shù)的實現(xiàn)細(xì)節(jié)及過程,效果良好。

      參考文獻(xiàn):

      [1] 常逢佳,李宗花,文靜,等.基于Python的招聘數(shù)據(jù)爬蟲設(shè)計與實現(xiàn) [J/OL].軟件導(dǎo)刊:1-4.[2019-08-13].http://kns.cnki.net/kcms/detail/42.1671.TP.20190731.1013.042.html.

      [2] 張露.網(wǎng)絡(luò)爬蟲技術(shù)在大數(shù)據(jù)審計中的應(yīng)用 [J].合作經(jīng)濟(jì)與科技,2019(7):190-192.

      [3] 李俊華.基于Python的數(shù)據(jù)分析 [J].電子技術(shù)與軟件工程,2018(17):167.

      作者簡介:李俊華(1988-),女,漢族,黑龍江哈爾濱人,講師,碩士研究生,研究方向:大數(shù)據(jù)、Python。

      猜你喜歡
      網(wǎng)絡(luò)爬蟲可視化
      數(shù)據(jù)可視化設(shè)計在美妝類APP中的應(yīng)用
      思維可視化
      復(fù)變函數(shù)級數(shù)展開的可視化實驗教學(xué)
      復(fù)變函數(shù)級數(shù)展開的可視化實驗教學(xué)
      復(fù)變函數(shù)共形映射的可視化實驗教學(xué)
      復(fù)變函數(shù)共形映射的可視化實驗教學(xué)
      煉鐵廠鐵量網(wǎng)頁數(shù)據(jù)獲取系統(tǒng)的設(shè)計與實現(xiàn)
      基于社會網(wǎng)絡(luò)分析的權(quán)威網(wǎng)頁挖掘研究
      主題搜索引擎中網(wǎng)絡(luò)爬蟲的實現(xiàn)研究
      淺析如何應(yīng)對網(wǎng)絡(luò)爬蟲流量
      灌云县| 喀什市| 民勤县| 驻马店市| 霍城县| 靖江市| 景泰县| 吉隆县| 弥渡县| 宁武县| 泰来县| 南城县| 平江县| 伽师县| 三河市| 长兴县| 新晃| 绥化市| 博客| 浪卡子县| 都匀市| 苏尼特左旗| 玉环县| 同江市| 富川| 临安市| 康平县| 湛江市| 明溪县| 阜城县| 含山县| 施秉县| 佛教| 驻马店市| 南川市| 泾源县| 读书| 阜平县| 吉木萨尔县| 鸡泽县| 东乌珠穆沁旗|